Yerler Kitaplığı

Koleksiyonlar ile düzeninizi koruyun İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
Platform seçin: Android iOS JavaScript Web Hizmeti

Genel bakış

Yerler Kitaplığı, Maps JavaScript API'deki işlevler, uygulamanızın belirli bir alanda (örneğin, bir haritanın sınırları veya sabit bir noktanın çevresinde) yer (bu kuruluşlarda tesisler, coğrafi konumlar veya belirgin önemli noktalar olarak tanımlanır) için arama yapabilmesini sağlar.

Yerler API'si, uygulamalarınıza Google Haritalar'ın arama alanına göre arama davranışını göstermek için kullanabileceğiniz bir otomatik tamamlama özelliği sunar. Kullanıcı bir adresi yazmaya başladığında, otomatik tamamlama özelliği diğerlerini doldurur. Daha fazla bilgi için otomatik tamamlama dokümanlarına bakın.

Başlarken

Maps JavaScript API veya JavaScript hakkında bilginiz yoksa başlamadan önce JavaScript'i ve API Anahtarı alma konusunu incelemenizi öneririz.

API'leri etkinleştir

Maps JavaScript API'deki Yerler kitaplığını kullanmadan önce, ilk olarak Yerler API'sinin Google Cloud Console'da etkinleştirildiğinden emin olun. Bu işlem, Maps JavaScript API için yaptığınız projede yapılmalıdır.

Etkin API'lerinizin listesini görüntülemek için:

  1. Google Cloud Console'a gidin.
  2. Proje seçin düğmesini tıklayın, ardından Maps JavaScript API için oluşturduğunuz projeyi seçin ve 'ı tıklayın.
  3. Kontrol Paneli'ndeki API listesinde Places API'yi bulun.
  4. Listede Yerler API'sini görüyorsanız bu özellik zaten etkinleştirilmiştir. API listelenmiyorsa etkinleştirin:
    1. Kitaplık sekmesini görüntülemek için sayfanın üst kısmından API'LERİ VE HİZMETLERİ ETKİNLEŞTİR'i seçin. Alternatif olarak sol taraftaki menüden Kitaplık'ı da seçebilirsiniz.
    2. Places API ifadesini arayın, ardından sonuçlar listesinden seçin.
    3. ETKİNLEŞTİR'i seçin. İşlem tamamlandığında, Kontrol Paneli'ndeki API listesinde Places API görünür.

Kitaplık yükleniyor

Yerler hizmeti, ana Maps JavaScript API kodundan ayrı olan bağımsız bir kitaplıktır. Bu kitaplıkta bulunan işlevi kullanmak için öncelikle Haritalar API'si önyükleme URL'sindeki libraries parametresini kullanarak işlevi yüklemeniz gerekir:

<script async
    src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&libraries=places&callback=initMap">
</script>

Daha fazla bilgi için Kitaplıklara Genel Bakış bölümünü inceleyin.

Yerler API'sini API anahtarının API kısıtlamaları listesine ekleme

Anahtarlarınıza API kısıtlamaları uygulamak API anahtarının kullanımını bir veya daha fazla API ya da SDK ile sınırlar. API anahtarıyla ilişkili API veya SDK'lara gönderilen istekler işlenir. API anahtarı ile ilişkili olmayan bir API veya SDK'ya gönderilen istekler başarısız olur. Bir API anahtarını Yerler Kitaplığı, Maps JavaScript API ile kullanılacak şekilde kısıtlamak için:
  1. Google Cloud Console'a gidin.
  2. Proje açılır menüsünü tıklayın ve güvenli hale getirmek istediğiniz API anahtarını içeren projeyi seçin.
  3. Menü düğmesini tıklayın ve Google Haritalar Platformu > Kimlik bilgileri'ni seçin.
  4. Kimlik bilgileri sayfasında, güvenliğini sağlamak istediğiniz API anahtarının adını tıklayın.
  5. API anahtarını kısıtlama ve yeniden adlandırma sayfasında kısıtlamaları ayarlayın:
    • API kısıtlamaları
      • Anahtarı kısıtla'yı seçin.
      • API'leri seç'i tıklayın ve Haritalar JavaScript API'si ile Places API'yi seçin.
        (API'lerden biri listede yoksa etkinleştirmeniz gerekir.)
  6. KAYDET'i tıklayın.

Kullanım sınırları ve politikalar

Kotalar

Yerler Kitaplığı, JavaScript API'si, Yerler API'sinin Kullanım Sınırları dokümanlarında açıklandığı gibi Yerler API'siyle bir kullanım kotası paylaşır.

Politikalar

Yerler Kitaplığı'nın kullanımı için Maps JavaScript API, Yerler API'si için açıklanan politikalara uygun olmalıdır.

Yer Aramaları

Yerler hizmetiyle aşağıdaki türlerde aramalar yapabilirsiniz:

Döndürülen bilgiler arasında restoranlar, mağazalar ve ofisler gibi kuruluşların yanı sıra adresleri, kasaba ve şehirler gibi siyasi alanları ve diğer önemli yerleri belirten "coğrafi kodlama" sonuçları yer alır.

Yer Bulma istekleri

Yer Bulma isteği, metin sorgusu veya telefon numarasıyla bir yer aramanıza olanak tanır. İki tür Yer Bulma isteği vardır:

Sorgudan Yer Bulma

Sorgudan Yer Bulma özelliği bir metin girişi alır ve bir yer döndürür. Giriş, işletme adı veya adres gibi herhangi bir türde Yer verisi olabilir. Sorgudan Yer Bulma isteğinde bulunmak için PlacesService findPlaceFromQuery() yöntemini çağırın. Bu yöntem aşağıdaki parametreleri alır:

  • query (zorunlu) Arama yapılacak metin dizesi. Örneğin: "restoran" veya "123 Sokak". Bu, bir yer adı, adres veya tesis kategorisi olmalıdır. Diğer giriş türleri hata oluşturabilir ve geçerli sonuçlar döndüreceği garanti edilmez. Yerler API'si bu dizeye dayalı aday eşleşmelerini döndürür ve sonuçları algılanan alaka düzeyine göre sıralar.
  • fields (zorunlu) Döndürülecek Yer verilerinin türlerini belirten bir veya daha fazla alan.
  • locationBias (isteğe bağlı) Aranacak alanı tanımlayan koordinatlar. Aşağıdakilerden biri olabilir:

Ayrıca, sonuç nesnesini ve google.maps.places.PlacesServiceStatus yanıtını ele almak için findPlaceFromQuery() işlevine bir geri çağırma yöntemi iletmeniz gerekir.

Aşağıdaki örnekte "Avustralya Modern Sanat Müzesi"ni arayan name ve geometry alanlarının yer aldığı findPlaceFromQuery() çağrısı yer almaktadır.

var map;
var service;
var infowindow;

function initMap() {
  var sydney = new google.maps.LatLng(-33.867, 151.195);

  infowindow = new google.maps.InfoWindow();

  map = new google.maps.Map(
      document.getElementById('map'), {center: sydney, zoom: 15});

  var request = {
    query: 'Museum of Contemporary Art Australia',
    fields: ['name', 'geometry'],
  };

  var service = new google.maps.places.PlacesService(map);

  service.findPlaceFromQuery(request, function(results, status) {
    if (status === google.maps.places.PlacesServiceStatus.OK) {
      for (var i = 0; i < results.length; i++) {
        createMarker(results[i]);
      }
      map.setCenter(results[0].geometry.location);
    }
  });
}
Örneği göster

Telefon Numarasından Yer Bulun

Telefon Numarasından Yer Bul özelliği bir telefon numarası alır ve yer bilgisi döndürür. Telefon Numarasından Yer Bulma isteğinde bulunmak için aşağıdaki parametreleri alan, PlacesService findPlaceFromPhoneNumber() yöntemini çağırın:

  • phoneNumber (zorunlu) E.164 biçiminde bir telefon numarası.
  • fields (zorunlu) Döndürülecek Yer verilerinin türlerini belirten bir veya daha fazla alan.
  • locationBias (isteğe bağlı) Aranacak alanı tanımlayan koordinatlar. Aşağıdakilerden biri olabilir:

Ayrıca, sonuç nesnesini ve google.maps.places.PlacesServiceStatus yanıtını ele almak için findPlaceFromPhoneNumber() işlevine bir geri çağırma yöntemi iletmeniz gerekir.

Alanlar (Yer yöntemlerini bulun)

Döndürülecek yer verisi türlerini belirtmek için fields parametresini kullanın. Örneğin: fields: ['formatted_address', 'opening_hours', 'geometry']. Bileşik değerleri belirtirken bir nokta kullanın. Örneğin: opening_hours.weekday_text.

Alanlar Yer Arama sonuçları'na karşılık gelir ve üç temel faturalandırma kategorisine ayrılmıştır: Temel, Kişi ve Atmosfer. Temel alanlar temel ücret üzerinden faturalandırılır. Bu durumda ek ücret alınmaz. İletişim ve Atmosfer alanları daha yüksek ücretle faturalandırılır. Daha fazla bilgi için fiyatlandırma sayfasına göz atın. Atıfların (html_attributions), alanın istenip istenmediğine bakılmaksızın her çağrıda her zaman döndürülür.

Temel

Temel kategorisi şu alanları içerir:
business_status, formatted_address, geometry, icon,icon_mask_base_uri, icon_background_color, name, permanently_closed (kullanımdan kaldırıldı), photos, place_id, plus_code, types

İletişim

Kişi kategorisinde şu alan bulunur: opening_hours
(Yerler Kitaplığı'nda kullanımdan kaldırıldı, Maps JavaScript API. opening_hours sonucunu almak için bir Yer Ayrıntıları isteği kullanın).

Atmosfer

Atmosfer kategorisinde şu alanlar bulunur: price_level, rating, user_ratings_total

findPlaceFromQuery() ve findPlaceFromPhoneNumber() yöntemlerinin her biri aynı alan grubunu alır ve aynı alanları ilgili yanıtlarda döndürebilir.

Konum taraflılığı ayarlama (Yer bulma yöntemleri)

Belirli bir bölgede Yer Bulma iyi sonuç sonuçları almak için locationBias parametresini kullanın. locationBias öğesini aşağıdaki şekillerde ayarlayabilirsiniz:

Belirli bir bölgeyle ilgili taraflı sonuçlar:

locationBias: {lat: 37.402105, lng: -122.081974}

Aranacak dikdörtgen alanı tanımlayın:

locationBias: {north: 37.41, south: 37.40, east: -122.08, west: -122.09}

Ayrıca LatLngBounds da kullanabilirsiniz.

Belirli bir alanın merkezine yerleştirilecek arama yarıçapını tanımlayın (metre cinsinden):

locationBias: {radius: 100, center: {lat: 37.402105, lng: -122.081974}}

Yakınlardaki Arama İstekleri

Yakınlardaki Aramalar, belirli bir alandaki yerleri anahtar kelimeye veya türe göre aramanıza olanak tanır. Yakınlardaki Aramalar, her zaman iki yöntemden biriyle belirtilebilecek bir konum içermelidir:

  • LatLngBounds.
  • location mülkünün kombinasyonu olarak tanımlanan dairesel alan ( dairenin merkezini LatLng nesnesi olarak belirtir) ve yarıçap olarak ölçülen bir yarıçap.

Yakındaki Yerler araması, PlacesService'in nearbySearch() yöntemine bir çağrıyla başlatılır. Böylece bir dizi PlaceResult nesnesi döndürülür. nearbySearch() yönteminin 3.9 sürümünden itibaren search() yönteminin yerini aldığını unutmayın.

service = new google.maps.places.PlacesService(map);
service.nearbySearch(request, callback);

Bu yöntem, aşağıdaki alanları içeren bir istek alır:

  • Şunlardan biri:
    • bounds (dikdörtgen arama alanını tanımlayan bir google.maps.LatLngBounds nesnesi olmalıdır) veya
    • Bir location ve radius; ilki bir google.maps.LatLng nesnesi alır, ikincisi ise dairenin yarıçapını metre cinsinden temsil eden basit bir tam sayı alır. İzin verilen maksimum yarıçap 50.000 metredir. rankBy, DISTANCE değerine ayarlandığında location belirtmeniz gerekir, ancak radius veya bounds belirtemezsiniz.
  • keyword (isteğe bağlı): Müşteri yorumları ve diğer üçüncü taraf içeriklerin yanı sıra ad, tür ve adres de dahil ancak bunlarla sınırlı olmamak üzere mevcut tüm alanlarla eşleştirilecek bir terim.
  • minPriceLevel ve maxPriceLevel (isteğe bağlı): Sonuçları yalnızca belirtilen aralıktaki yerlerle sınırlar. Geçerli değerler 0 (en uygun fiyatlı) ile 4 (en pahalı) arasında değişir.
  • name Kullanımdan kaldırıldı. keyword yönergesine eşdeğer. Bu alandaki değerler, keyword alanındaki değerlerle birleştirilir ve aynı arama dizesinin parçası olarak aktarılır.
  • openNow (isteğe bağlı): Yer hizmetinin yalnızca sorgu gönderildiğinde açık olan yerleri döndürmesi gerektiğini gösteren bir boole değeridir. Bu parametreyi sorgunuza eklerseniz Google Yerler veritabanında çalışma saatleri belirtmeyen yerler döndürülmez. openNow alanının false olarak ayarlanmasının herhangi bir etkisi yoktur.
  • rankBy (isteğe bağlı): Sonuçların listelendiği sırayı belirtir. Olası değerler:
    • google.maps.places.RankBy.PROMINENCE (varsayılan). Bu seçenek, sonuçları önem derecelerine göre sıralar. Sıralama, belirlenen yarıçapla eşleşen yakındaki yerleri, eşleşen ancak daha az belirgin olan yerlere tercih eder. Önem; bir yerin Google dizinindeki sıralamasından, küresel popülerliğinden ve diğer faktörlerden etkilenebilir. google.maps.places.RankBy.PROMINENCE belirtildiğinde radius parametresi gerekir.
    • google.maps.places.RankBy.DISTANCE. Bu seçenek, sonuçları belirtilen location ile arasındaki mesafeye göre artan düzende sıralar (zorunlu). RankBy.DISTANCE özelini belirtirseniz özel bir bounds ve/veya radius belirtemeyeceğinizi unutmayın. RankBy.DISTANCE öğesini belirttiğinizde keyword, name veya type arasından bir veya daha fazlası gereklidir.
  • type: Sonuçları, belirtilen türle eşleşen yerlerle sınırlar. Yalnızca bir tür belirtilebilir (birden fazla tür sağlanırsa ilk girişi izleyen tüm türler yok sayılır). Desteklenen türlerin listesine bakın.

Sonuçlar nesnesini ve google.maps.places.PlacesServiceStatus yanıtını ele almak için nearbySearch() işlevine bir geri çağırma yöntemi iletmeniz de gerekir.

var map;
var service;
var infowindow;

function initialize() {
  var pyrmont = new google.maps.LatLng(-33.8665433,151.1956316);

  map = new google.maps.Map(document.getElementById('map'), {
      center: pyrmont,
      zoom: 15
    });

  var request = {
    location: pyrmont,
    radius: '500',
    type: ['restaurant']
  };

  service = new google.maps.places.PlacesService(map);
  service.nearbySearch(request, callback);
}

function callback(results, status) {
  if (status == google.maps.places.PlacesServiceStatus.OK) {
    for (var i = 0; i < results.length; i++) {
      createMarker(results[i]);
    }
  }
}

Örneği göster

Metin Arama İstekleri

Google Yerler Metin Arama hizmeti, bir dizi dizeye dayalı olarak yerlerle ilgili bilgi döndüren bir web hizmetidir (ör. "İstanbul'da pizza" veya "Ottawa yakınlarında ayakkabı mağazaları"). Hizmet, metin dizesi ve ayarlanan konum ön yargısıyla eşleşen yerlerin bir listesiyle yanıt verir. Arama yanıtı yerlerin listesini içerir. Yanıttaki herhangi bir yer hakkında daha fazla bilgi edinmek için Yer Ayrıntıları isteği gönderebilirsiniz.

Metin Aramaları, PlacesService textSearch() yöntemini çağırarak başlatılır.

service = new google.maps.places.PlacesService(map);
service.textSearch(request, callback);

Bu yöntem, aşağıdaki alanları içeren bir istek alır:

  • query (zorunlu) Aranacak metin dizesi, örneğin: "restoran" veya "123 Sokak". Bu, bir yer adı, adresi veya tesis kategorisi olmalıdır. Diğer giriş türleri hata oluşturabilir ve geçerli sonuçlar döndüreceği garanti edilmez. Yerler hizmeti, bu dizeye dayanarak aday eşleşmelerini döndürür ve sonuçları algılanan alaka düzeyine göre sıralar. type parametresi arama isteğinde de kullanılıyorsa bu parametre isteğe bağlıdır.
  • İsteğe bağlı olarak:
    • openNow: Yerler hizmetinin yalnızca sorgu gönderildiğinde açık olan yerleri döndürmesi gerektiğini gösteren bir boole değeridir. Bu parametreyi sorgunuza eklerseniz Google Yerler veritabanında çalışma saatleri belirtmeyen yerler döndürülmez. openNow alanının false olarak ayarlanmasının herhangi bir etkisi yoktur.
    • minPriceLevel ve maxPriceLevel: Sonuçları yalnızca belirtilen fiyat düzeyindeki yerlerle sınırlar. Geçerli değerler 0 (en uygun fiyatlı) ile 4 (en pahalı) arasında değişir.
    • Şunlardan biri:
      • bounds: Aranacak dikdörtgeni tanımlayan bir google.maps.LatLngBounds nesnesi veya
      • location ve radius: location ve radius parametrelerini ileterek sonuçları belirli bir daireye çevirebilirsiniz. Bu işlemle, Yerler hizmetine bu çevre içindeki sonuçları göstermeyi tercih etmesi sağlanır. Tanımlanan alanın dışındaki sonuçlar gösterilmeye devam edebilir. Konum bir google.maps.LatLng nesnesi alır ve yarıçap, dairenin yarıçapını metre cinsinden belirten basit bir tam sayı alır. İzin verilen maksimum yarıçap 50.000 metredir.
    • type: Sonuçları, belirtilen türle eşleşen yerlerle sınırlar. Yalnızca bir tür belirtilebilir (birden fazla tür sağlanırsa ilk girişi izleyen tüm türler yok sayılır). Desteklenen türlerin listesine bakın.

Ayrıca, sonuç nesnesini ve bir google.maps.places.PlacesServiceStatus yanıtını işlemek için textSearch() işlevine bir geri çağırma yöntemi iletmeniz gerekir.

var map;
var service;
var infowindow;

function initialize() {
  var pyrmont = new google.maps.LatLng(-33.8665433,151.1956316);

  map = new google.maps.Map(document.getElementById('map'), {
      center: pyrmont,
      zoom: 15
    });

  var request = {
    location: pyrmont,
    radius: '500',
    query: 'restaurant'
  };

  service = new google.maps.places.PlacesService(map);
  service.textSearch(request, callback);
}

function callback(results, status) {
  if (status == google.maps.places.PlacesServiceStatus.OK) {
    for (var i = 0; i < results.length; i++) {
      var place = results[i];
      createMarker(results[i]);
    }
  }
}

Arama Yanıtları

Durum Kodları

PlacesServiceStatus yanıt nesnesi, isteğin durumunu içerir ve yer isteğinin neden başarısız olduğunu takip etmenize yardımcı olacak hata ayıklama bilgilerini içerebilir. Olası durum değerleri şunlardır:

  • INVALID_REQUEST: Bu istek geçersizdi.
  • OK: Yanıt geçerli bir sonuç içeriyor.
  • OVER_QUERY_LIMIT: Web sayfası, istek kotasını aştı.
  • REQUEST_DENIED: Web sayfasında Yerler Hizmeti'nin kullanılmasına izin verilmiyor.
  • UNKNOWN_ERROR: Yer hizmeti isteği, bir sunucu hatası nedeniyle işlenemedi. Tekrar denerseniz istek başarılı olabilir.
  • ZERO_RESULTS: Bu istek için sonuç bulunamadı.

Yer Arama Sonuçları

findPlace(), nearbySearch() ve textSearch() işlevleri, bir PlaceResult nesnesi dizisi döndürür.

Her PlaceResult nesnesi aşağıdaki özellikleri içerebilir:

  • business_status, bir işletmeyse yerin çalışma durumunu gösterir. Aşağıdaki değerlerden birini içerebilir:
    • OPERATIONAL
    • CLOSED_TEMPORARILY
    • CLOSED_PERMANENTLY
    Veri yoksa business_status döndürülmez.
  • formatted_address, bu yerin okunabilir adresini içeren bir dizedir. formatted_address özelliği yalnızca Metin Arama için döndürülür.

    Bu adres genellikle posta adresiyle eşdeğerdir. Birleşik Krallık gibi bazı ülkelerde lisanslama kısıtlamaları nedeniyle gerçek posta adreslerinin dağıtımına izin verilmediğini hatırlatmak isteriz.

    Biçimlendirilmiş adres, mantıksal olarak bir veya daha fazla adres bileşeninden oluşur. Örneğin, "111 8th Avenue, New York, NY" adresi şu bileşenlerden oluşur: "111" (sokak numarası), "8th Avenue" (rota), "New York" (şehir) ve "NY" (ABD eyaleti).

    Biçimlendirilmiş adresi programatik olarak ayrıştırmayın. Bunun yerine, API yanıtının biçimlendirilmiş adres alanına ek olarak içerdiği bağımsız adres bileşenlerini kullanmanız gerekir.

  • geometry: Yerin geometrisiyle ilgili bilgiler. Bunlardan bazıları:
    • location, yerin enlem ve boylamını sağlar.
    • viewport, bu yeri görüntülerken haritada tercih edilen görüntü alanını tanımlar.
  • permanently_closed (kullanımdan kaldırıldı), yerin kalıcı olarak mı yoksa geçici olarak mı kapatılacağını (true değeri) belirtir bir boole işaretidir. permanently_closed kullanmayın. Bunun yerine, işletmelerin operasyonel durumunu öğrenmek için business_status özelliğini kullanın.
  • plus_code (Konum Konumunu Aç ve artı kodları), enlem ve boylam koordinatlarından türetilen ve bir alanı temsil eden kodlanmış konum referansıdır: derecenin 1/8000'i ile 1/8000 derece (ekvatorda yaklaşık 14 m x 14 m) veya daha küçük bir alan. Artı kodları, mevcut olmayan (binaların numaralandırılmadığı veya sokakların adlandırılmamış olduğu) açık adreslerin yerine kullanılabilir.

    Plus code, global kod ve birleşik kod olarak biçimlendirilir:

    • global_code, 4 karakter uzunluğunda bir alan kodu ve 6 veya daha uzun yerel koddur (849VCWC8+R9).
    • compound_code, açık bir konuma (CWC8+R9, Mountain View, CA, ABD) sahip 6 karakter veya daha uzun bir yerel koddur. Bu içeriği programla ayrıştırmayın.
    Genellikle hem global kod hem de birleşik kod döndürülür. Ancak sonuç uzak bir konumdaysa (örneğin, bir okyanus veya çöl) yalnızca genel kod döndürülebilir.
  • html_attributions: Arama sonuçlarını gösterirken görüntülemeniz gereken bir atıf dizisi. Dizideki her giriş tek bir ilişkilendirmeye ait HTML metnini içerir. Not: Bu, arama yanıtının tamamı için tüm ilişkilendirmelerin toplamıdır. Dolayısıyla yanıttaki PlaceResult nesnelerinin tümü aynı ilişkilendirme listelerini içerir.
  • icon, renkli 71 piksel x 71 piksel PNG simgesinin URL'sini döndürür.
  • icon_mask_base_uri, renksiz bir simgenin temel URL'sini .svg veya .png uzantısından çıkarır.
  • icon_background_color, yer kategorisinin varsayılan HEX renk kodunu döndürür.
  • name: Yerin adı.
  • opening_hours aşağıdaki bilgileri içerebilir:
    • open_now, yerin o anda açık olup olmadığını gösteren bir boole değeridir (Yerler Kitaplığı'nda, Maps JavaScript API'de kullanımdan kaldırıldı, onun yerine utc_offset_minutes kullanın).
  • place_id, bir yeri benzersiz şekilde tanımlayan metin tanımlayıcısıdır. Yer hakkında bilgi almak için Yer Ayrıntıları isteğinde bu tanımlayıcıyı iletin. Yer kimliğine sahip bir yere nasıl referans vereceğiniz hakkında daha fazla bilgi edinin.
  • rating, bir yerin kullanıcı puanlarına göre 0,0 ile 5,0 arasındaki bir derecelendirmesini içerir.
  • types Bu yer için bir dizi tür (ör. ["political", "locality"] veya ["restaurant", "lodging"]). Bu dizi birden fazla değer içerebilir veya boş olabilir. Yeni değerler, önceden bildirilmeksizin kullanıma sunulabilir. Desteklenen türlerin listesine bakın.
  • vicinity: Sokak adı, sokak numarası ve konum bilgisi dahil olmak üzere yer için basitleştirilmiş bir adrestir. İl/eyalet, posta kodu veya ülke bilgisi dahil değildir. Örneğin, Google'ın Sidney, Avustralya ofisinin vicinity değeri 5/48 Pirrama Road, Pyrmont.

Ek Sonuçlara Erişme

Varsayılan olarak her yer araması, sorgu başına en fazla 20 sonuç döndürür. Ancak her arama, üç sayfaya bölünerek en fazla 60 sonuç döndürebilir. PlaceSearchPagination nesnesi aracılığıyla ek sayfalar mevcuttur. Ek sayfalara erişmek için geri çağırma işlevi aracılığıyla PlaceSearchPagination nesnesini yakalamanız gerekir. PlaceSearchPagination nesnesi şu şekilde tanımlanır:

  • Daha fazla sonuç olup olmadığını belirten boole özelliği.hasNextPage true bulunur.
  • nextPage() bir sonraki sonuç grubunu döndürecek bir işlev. Bir arama yaptıktan sonra, bir sonraki sonuç sayfasının kullanılabilir olması için iki saniye beklemeniz gerekir.

Sonraki sonuç grubunu görmek için nextPage numaralı telefonu arayın. Her sonuç sayfası, bir sonraki sonuç sayfası gösterilmeden önce görüntülenmelidir. Her aramanın, kullanım sınırlarınızda tek bir istek olarak sayıldığını unutmayın.

Aşağıdaki örnekte, birden çok arama isteğinde bulunabilmeniz için PlaceSearchPagination nesnesini yakalamak için geri çağırma işlevinizin nasıl değiştirileceği gösterilmektedir.

TypeScript

// This example requires the Places library. Include the libraries=places
// parameter when you first load the API. For example:
// <script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&libraries=places">

function initMap(): void {
  // Create the map.
  const pyrmont = { lat: -33.866, lng: 151.196 };
  const map = new google.maps.Map(
    document.getElementById("map") as HTMLElement,
    {
      center: pyrmont,
      zoom: 17,
      mapId: "8d193001f940fde3",
    } as google.maps.MapOptions
  );

  // Create the places service.
  const service = new google.maps.places.PlacesService(map);
  let getNextPage: () => void | false;
  const moreButton = document.getElementById("more") as HTMLButtonElement;

  moreButton.onclick = function () {
    moreButton.disabled = true;

    if (getNextPage) {
      getNextPage();
    }
  };

  // Perform a nearby search.
  service.nearbySearch(
    { location: pyrmont, radius: 500, type: "store" },
    (
      results: google.maps.places.PlaceResult[] | null,
      status: google.maps.places.PlacesServiceStatus,
      pagination: google.maps.places.PlaceSearchPagination | null
    ) => {
      if (status !== "OK" || !results) return;

      addPlaces(results, map);
      moreButton.disabled = !pagination || !pagination.hasNextPage;

      if (pagination && pagination.hasNextPage) {
        getNextPage = () => {
          // Note: nextPage will call the same handler function as the initial call
          pagination.nextPage();
        };
      }
    }
  );
}

function addPlaces(
  places: google.maps.places.PlaceResult[],
  map: google.maps.Map
) {
  const placesList = document.getElementById("places") as HTMLElement;

  for (const place of places) {
    if (place.geometry && place.geometry.location) {
      const image = {
        url: place.icon!,
        size: new google.maps.Size(71, 71),
        origin: new google.maps.Point(0, 0),
        anchor: new google.maps.Point(17, 34),
        scaledSize: new google.maps.Size(25, 25),
      };

      new google.maps.Marker({
        map,
        icon: image,
        title: place.name!,
        position: place.geometry.location,
      });

      const li = document.createElement("li");

      li.textContent = place.name!;
      placesList.appendChild(li);

      li.addEventListener("click", () => {
        map.setCenter(place.geometry!.location!);
      });
    }
  }
}

declare global {
  interface Window {
    initMap: () => void;
  }
}
window.initMap = initMap;

JavaScript

// This example requires the Places library. Include the libraries=places
// parameter when you first load the API. For example:
// <script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&libraries=places">
function initMap() {
  // Create the map.
  const pyrmont = { lat: -33.866, lng: 151.196 };
  const map = new google.maps.Map(document.getElementById("map"), {
    center: pyrmont,
    zoom: 17,
    mapId: "8d193001f940fde3",
  });
  // Create the places service.
  const service = new google.maps.places.PlacesService(map);
  let getNextPage;
  const moreButton = document.getElementById("more");

  moreButton.onclick = function () {
    moreButton.disabled = true;
    if (getNextPage) {
      getNextPage();
    }
  };

  // Perform a nearby search.
  service.nearbySearch(
    { location: pyrmont, radius: 500, type: "store" },
    (results, status, pagination) => {
      if (status !== "OK" || !results) return;

      addPlaces(results, map);
      moreButton.disabled = !pagination || !pagination.hasNextPage;
      if (pagination && pagination.hasNextPage) {
        getNextPage = () => {
          // Note: nextPage will call the same handler function as the initial call
          pagination.nextPage();
        };
      }
    }
  );
}

function addPlaces(places, map) {
  const placesList = document.getElementById("places");

  for (const place of places) {
    if (place.geometry && place.geometry.location) {
      const image = {
        url: place.icon,
        size: new google.maps.Size(71, 71),
        origin: new google.maps.Point(0, 0),
        anchor: new google.maps.Point(17, 34),
        scaledSize: new google.maps.Size(25, 25),
      };

      new google.maps.Marker({
        map,
        icon: image,
        title: place.name,
        position: place.geometry.location,
      });

      const li = document.createElement("li");

      li.textContent = place.name;
      placesList.appendChild(li);
      li.addEventListener("click", () => {
        map.setCenter(place.geometry.location);
      });
    }
  }
}

window.initMap = initMap;
Örneği göster

Örneği Deneyin

Yer Ayrıntıları

Yer hizmeti, bir bölgedeki yerlerin listesini sağlamanın yanı sıra belirli bir yer hakkında ayrıntılı bilgi de sağlayabilir. Yer arama yanıtında bir yer döndürüldükten sonra, yer kimliği bu yer hakkında adres, telefon numarası, kullanıcı puanı ve yorumlar gibi ek ayrıntılar istemek için kullanılabilir.

Yer Ayrıntıları İstekleri

Yer Ayrıntıları, hizmetin getDetails() yöntemine yapılan çağrıyla istenir.

service = new google.maps.places.PlacesService(map);
service.getDetails(request, callback);

Bu yöntem, istenen yerin placeId bilgisini ve döndürülecek Yer verisi türlerini belirten alanları içeren bir istek alır. Yer kimliği kullanarak bir yere referans verme hakkında daha fazla bilgi edinin.

Ayrıca, google.maps.places.PlacesServiceStatus nesnesinde iletilen durum kodunu ve google.maps.places.PlaceResult nesnesini işlemesi gereken bir geri çağırma yöntemi de kullanılır.

var request = {
  placeId: 'ChIJN1t_tDeuEmsRUsoyG83frY4',
  fields: ['name', 'rating', 'formatted_phone_number', 'geometry']
};

service = new google.maps.places.PlacesService(map);
service.getDetails(request, callback);

function callback(place, status) {
  if (status == google.maps.places.PlacesServiceStatus.OK) {
    createMarker(place);
  }
}

Örneği göster

Alanlar (Yer ayrıntıları)

fields parametresi bir dize dizisi (alan adları) alır.

Döndürülecek yer verisi türlerini belirtmek için fields parametresini kullanın. Örneğin: fields: ['address_component', 'opening_hours', 'geometry']. Bileşik değerleri belirtirken bir nokta kullanın. Örneğin: opening_hours.weekday_text.

Alanlar Yer Ayrıntıları sonuçlarına karşılık gelir ve üç temel faturalandırma kategorisine ayrılmıştır: Temel, İletişim ve Atmosfer. Temel alanlar taban ücretle faturalandırılır ve ek ücret alınmaz. Kişi ve Atmosfer alanları daha yüksek ücretle faturalandırılır. Daha fazla bilgi için fiyatlandırma sayfasına göz atın. İlişkilendirmeler (html_attributions), istenmiş olsun veya olmasın her zaman her çağrıda döndürülür.

Temel

Temel kategorisi aşağıdaki alanları içerir:
address_component, adr_address, business_status, formatted_address, geometry, icon, icon_mask_base_uri, icon_background_color,name, permanently_closed (kullanımdan kaldırıldı), photo, place_id, plus_code, type, url, utc_offset (/{29de//)

İletişim

Kişi kategorisi şu alanları içerir:
formatted_phone_number, international_phone_number, opening_hours, website

Atmosfer

Atmosfer kategorisinde şu alanlar bulunur: price_level, rating, reviews, user_ratings_total

Yer alanları hakkında daha fazla bilgi edinin. Yer verileri isteklerinin nasıl faturalandırıldığı hakkında daha fazla bilgi için Kullanım ve Faturalandırma'ya bakın.

Yer Ayrıntıları Yanıtları

Durum Kodları

PlacesServiceStatus yanıt nesnesi, isteğin durumunu içerir ve Yer Ayrıntıları isteğinin neden başarısız olduğunu takip etmenize yardımcı olacak hata ayıklama bilgilerini içerebilir. Olası durum değerleri şunlardır:

  • INVALID_REQUEST: Bu istek geçersizdi.
  • OK: Yanıt geçerli bir sonuç içeriyor.
  • OVER_QUERY_LIMIT: Web sayfası, istek kotasını aştı.
  • NOT_FOUND Başvurulan konum, Yerler veritabanında bulunamadı.
  • REQUEST_DENIED: Web sayfasında Yerler Hizmeti'nin kullanılmasına izin verilmiyor.
  • UNKNOWN_ERROR: Yer hizmeti isteği, bir sunucu hatası nedeniyle işlenemedi. Tekrar denerseniz istek başarılı olabilir.
  • ZERO_RESULTS: Bu istek için sonuç bulunamadı.

Yer Ayrıntıları Sonuçları

Başarılı getDetails() çağrısı aşağıdaki özelliklere sahip bir PlaceResult nesnesi döndürür:

  • address_components: Bu adres için geçerli olan ayrı bileşenleri içeren bir dizi.

    Her adres bileşeni genellikle aşağıdaki alanları içerir:

    • types[], adres bileşeninin türünü belirten bir dizidir. Desteklenen türlerin listesine bakın.
    • long_name, Geocoder tarafından döndürülen adres bileşeninin tam metin açıklaması veya adıdır.
    • short_name, adres bileşeninin (varsa) kısaltılmış metin adıdır. Örneğin, Alaska eyaletindeki bir adres bileşeninde, 2 harfli posta kısaltması kullanılarak long_name "Alaska" ve short_name değeri "AK" bulunabilir.

    address_components[] dizisiyle ilgili aşağıdaki noktaları göz önünde bulundurun:

    • Adres bileşenleri dizisi, formatted_address değerinden daha fazla bileşen içerebilir.
    • Dizide, formatted_address içinde bulunanlar dışında adres içeren tüm siyasi kuruluşlar bulunmayabilir. Belirli bir adres içeren tüm siyasi varlıkları almak için, isteğin enlem veya boylamını parametre olarak ileterek tersine coğrafi kodlama kullanmanız gerekir.
    • İsteğin biçiminin istekler arasında aynı kalacağı garanti edilmez. Özellikle address_components sayısı, talep edilen adrese göre değişir ve aynı adres için zaman içinde değişebilir. Bir bileşen, dizideki konumu değiştirebilir. Bileşenin türü değişebilir. Daha sonraki bir yanıtta belirli bir bileşen eksik olabilir.
  • business_status, bir işletmeyse yerin çalışma durumunu gösterir. Aşağıdaki değerlerden birini içerebilir:
    • OPERATIONAL
    • CLOSED_TEMPORARILY
    • CLOSED_PERMANENTLY
    Veri yoksa business_status döndürülmez.
  • formatted_address: Bu yerin okuyabildiği adres.

    Bu adres genellikle posta adresiyle eşdeğerdir. Birleşik Krallık gibi bazı ülkelerde lisanslama kısıtlamaları nedeniyle gerçek posta adreslerinin dağıtımına izin verilmediğini hatırlatmak isteriz.

    Biçimlendirilmiş adres, mantıksal olarak bir veya daha fazla adres bileşeninden oluşur. Örneğin, "111 8th Avenue, New York, NY" adresi şu bileşenlerden oluşur: "111" (sokak numarası), "8th Avenue" (rota), "New York" (şehir) ve "NY" (ABD eyaleti).

    Biçimlendirilmiş adresi programatik olarak ayrıştırmayın. Bunun yerine, API yanıtının biçimlendirilmiş adres alanına ek olarak içerdiği bağımsız adres bileşenlerini kullanmanız gerekir.

  • formatted_phone_number: Telefonun bölgesel modeline göre biçimlendirilmiş telefon numarası.
  • geometry: Yerin geometrisiyle ilgili bilgiler. Bunlardan bazıları:
    • location, yerin enlem ve boylamını sağlar.
    • viewport, bu yeri görüntülerken haritada tercih edilen görüntü alanını tanımlar.
  • permanently_closed (kullanımdan kaldırıldı), yerin kalıcı olarak mı yoksa geçici olarak mı kapatılacağını (true değeri) belirtir bir boole işaretidir. permanently_closed kullanmayın. Bunun yerine, işletmelerin operasyonel durumunu öğrenmek için business_status özelliğini kullanın.
  • plus_code (Konum Konumunu Aç ve artı kodları), enlem ve boylam koordinatlarından türetilen ve bir alanı temsil eden kodlanmış konum referansıdır: derecenin 1/8000'i ile 1/8000 derece (ekvatorda yaklaşık 14 m x 14 m) veya daha küçük bir alan. Artı kodları, mevcut olmayan (binaların numaralandırılmadığı veya sokakların adlandırılmamış olduğu) açık adreslerin yerine kullanılabilir.

    Plus code, global kod ve birleşik kod olarak biçimlendirilir:

    • global_code, 4 karakter uzunluğunda bir alan kodu ve 6 veya daha uzun yerel koddur (849VCWC8+R9).
    • compound_code, açık bir konuma (CWC8+R9, Mountain View, CA, ABD) sahip 6 karakter veya daha uzun bir yerel koddur. Bu içeriği programla ayrıştırmayın.
    Genellikle hem global kod hem de birleşik kod döndürülür. Ancak sonuç uzak bir konumdaysa (örneğin, bir okyanus veya çöl) yalnızca genel kod döndürülebilir.
  • html_attributions: Bu yer sonucu için gösterilecek ilişkilendirme metni.
  • icon: Bu yerin türünü göstermek için kullanılabilecek resim kaynağının URL'si.
  • international_phone_number, yerin telefon numarasını uluslararası standarda uygun biçimde içeriyor. Uluslararası biçim, ülke kodunu içerir ve buna artı (+) işaretiyle eklenir. Örneğin, Google'ın Sidney, Avustralya ofisinin international_phone_number adı +61 2 9374 4000 şeklindedir.
  • name: Yerin adı.
  • utc_offset Yerler Kitaplığı, Maps JavaScript API'de kullanımdan kaldırıldı. Bunun yerine utc_offset_minutes kullanın.
  • utc_offset_minutes, bu yerin mevcut saat diliminin UTC ile farkını belirtir. Örneğin, Avustralya'nın Sidney şehrindeki yaz saati uygulaması sırasında bu saat 660 (UTC'den +11 saat) ve Kaliforniya'da yaz saati dışındaki yerler için bu değer -480 (UTC ile -8 saat) arasıdır.
  • opening_hours aşağıdaki bilgileri içerir:
    • open_now (Yerler Kitaplığı'nda, Maps JavaScript API'de kullanımdan kaldırıldı. Bunun yerine opening_hours.isOpen() kullanın. isOpen ürününün Yer Ayrıntıları ile nasıl kullanılacağını öğrenmek için bu videoya göz atın.) yerin şu anda açık olup olmadığını belirten bir boole değeridir.
    • periods[], pazardan başlayarak kronolojik sırayla yedi günü kapsayan bir dizi açılış dönemidir. Her dönem şunları içerir:
      • open, yerin ne zaman açıldığını açıklayan bir çift gün ve saat nesnesi içerir:
        • day tarihinden itibaren, pazar günlerinden itibaren 0-6 arasında bir sayı olacaktır. Örneğin, 2, Salı anlamına gelir.
        • time, günün 24 saati sa:dk biçimini içerebilir (değerler 0000–2359 aralığındadır). time, yerin saat diliminde raporlanır.
      • close, yerin ne zaman kapandığını açıklayan bir çift gün ve saat nesnesi içerebilir. Not: Yer her zaman açıksa yanıtta close bölümü eksik olur. Uygulamalar, her zaman açık olacak şekilde, 0 değerine sahip day ve 0000 değerine sahip, time içeren close içeren bir open dönemi olarak temsil edilebilir.
    • weekday_text, haftanın her günü için biçimlendirilmiş çalışma saatlerini temsil eden yedi dizeden oluşan bir dizidir. Yer Ayrıntıları isteğinde bir language parametresi belirtilmişse Yerler Hizmeti, çalışma saatlerini bu dile uygun şekilde biçimlendirir ve yerelleştirir. Bu dizideki öğelerin sıralaması, language parametresine bağlıdır. Bazı dillerde hafta pazartesi, bazıları ise pazar günleri başlar.
  • permanently_closed (kullanımdan kaldırıldı), yerin kalıcı olarak mı yoksa geçici olarak mı kapatılacağını (true değeri) belirtir bir boole işaretidir. permanently_closed kullanmayın. Bunun yerine, işletmelerin operasyonel durumunu öğrenmek için business_status özelliğini kullanın.
  • photos[]: PlacePhoto nesne dizisi. PlacePhoto, getUrl() yöntemini kullanarak fotoğraf elde etmek için kullanılabilir veya aşağıdaki değerler için nesneyi inceleyebilirsiniz:
    • height: Resmin piksel cinsinden maksimum yüksekliği.
    • width: Resmin piksel cinsinden maksimum genişliği.
    • html_attributions: İlişkilendirme metni, bu yer fotoğrafıyla birlikte gösterilecek.
  • place_id: Bir yeri benzersiz şekilde tanımlayan ve Yer Ayrıntıları isteği aracılığıyla yer hakkındaki bilgileri almak için kullanılabilen metin tanımlayıcısı. Yer kimliğine sahip bir yere nasıl referans vereceğiniz hakkında daha fazla bilgi edinin.
  • rating: Toplam kullanıcı yorumlarına göre 0, 0 ile 5, 0 arasındaki bir puandır.
  • reviews En fazla beş yorumdan oluşan bir dizi. Her yorum birkaç bileşenden oluşur:
    • aspects[], PlaceAspectRating nesne dizisi içerir. Bu nesnelerin her biri, tesisin tek bir özelliğinin puanını belirtir. Dizideki ilk nesne birincil en boy olarak kabul edilir. Her PlaceAspectRating şu şekilde tanımlanır:
      • type puan verilen özelliğin adı. Şu türler desteklenir: appeal, atmosphere, decor, facilities, food, overall, quality ve service.
      • rating Kullanıcının bu özellikle ilgili olarak 0 ile 3 arasında puan vermesi.
    • author_name yorumu gönderen kullanıcının adı. Anonim yorumlar "Bir Google kullanıcısı" ile ilişkilendirilir. Dil parametresi ayarlandıysa "Google kullanıcısı" ifadesi, yerelleştirilmiş bir dize döndürür.
    • author_url (varsa) kullanıcının Google+ profilinin URL'si.
    • language Kullanıcının yorumunda kullanılan dili belirten bir IETF dil kodu ekleyin. Bu alan yalnızca ana dil etiketini içerir, ülke veya bölgeyi belirten ikincil etiketi içermez. Örneğin, tüm İngilizce yorumlar "en-AU" veya "en-UK" değil, "en" olarak etiketlenir.
    • rating Kullanıcının bu yer için genel puanı. Bu, 1 ile 5 arasında değişen bir tam sayıdır.
    • text adlı kullanıcının yorumu. Google Yerler ile bir yeri incelerken metin incelemeleri isteğe bağlı olarak kabul edilir, bu nedenle bu alan boş olabilir.
  • types Bu yer için bir dizi tür (ör. ["political", "locality"] veya ["restaurant", "lodging"]). Bu dizi birden fazla değer içerebilir veya boş olabilir. Yeni değerler, önceden bildirilmeksizin kullanıma sunulabilir. Desteklenen türlerin listesine bakın.
  • url: Bu yerin resmi Google sayfasının URL'si. Bu sayfa, yer hakkında mevcut en iyi bilgileri içeren Google'a ait sayfadır. Uygulamalar, kullanıcıya yerle ilgili ayrıntılı sonuçları gösteren herhangi bir ekrana bağlantı vermeli veya bu sayfayı yerleştirmelidir.
  • vicinity: Sokak adı, sokak numarası ve konum bilgisi dahil olmak üzere yer için basitleştirilmiş bir adrestir. İl/eyalet, posta kodu veya ülke bilgisi dahil değildir. Örneğin, Google'ın Sidney, Avustralya ofisinin vicinity değeri 5/48 Pirrama Road, Pyrmont. vicinity özelliği yalnızca Yakındaki Arama için döndürülür.
  • website bu işletmenin yetkili web sitesini (ör. bir işletmenin ana sayfası) listeler.

Not: Çok boyutlu derecelendirmeler tüm konumlarda kullanılamayabilir. Çok az yorum varsa ayrıntılar yanıtında 0,0 ila 5,0 ölçeğinde (varsa) eski bir puan bulunur veya hiç puan verilmez.

Yer Kimliği olan Yerlere Başvurma

Yer kimliği, bir Google Haritalar'daki bir yere verilen benzersiz referanstır. Yer kimlikleri; işletmeler, önemli noktalar, parklar ve kavşaklar dahil olmak üzere çoğu konumda kullanılabilir.

Uygulamanızda bir yer kimliği kullanmak için öncelikle bir kimlik arayın. Bu kimliği, Yer Arama veya Ayrıntılar isteğinin PlaceResult tanesinde bulabilirsiniz. Daha sonra, Yer Ayrıntıları'nı aramak için bu yer kimliğini kullanabilirsiniz.

Yer kimlikleri, Google Haritalar Platformu Hizmet Şartları'nın Bölüm 3.2.3(a)'da belirtilen önbelleğe alma kısıtlamalarından muaftır. Bu nedenle, yer kimliği değerlerini daha sonra kullanmak üzere saklayabilirsiniz. Yer kimliklerini depolamada en iyi uygulamalar için yer kimliğine genel bakış sayfasını inceleyin.

var map;

function initialize() {
  // Create a map centered in Pyrmont, Sydney (Australia).
  map = new google.maps.Map(document.getElementById('map'), {
    center: {lat: -33.8666, lng: 151.1958},
    zoom: 15
  });

  // Search for Google's office in Australia.
  var request = {
    location: map.getCenter(),
    radius: '500',
    query: 'Google Sydney'
  };

  var service = new google.maps.places.PlacesService(map);
  service.textSearch(request, callback);
}

// Checks that the PlacesServiceStatus is OK, and adds a marker
// using the place ID and location from the PlacesService.
function callback(results, status) {
  if (status == google.maps.places.PlacesServiceStatus.OK) {
    var marker = new google.maps.Marker({
      map: map,
      place: {
        placeId: results[0].place_id,
        location: results[0].geometry.location
      }
    });
  }
}

google.maps.event.addDomListener(window, 'load', initialize);

Yerin Fotoğrafları

Yer Fotoğrafı özelliği, sitenize yüksek kaliteli fotoğraf içeriği eklemenize olanak tanır. Fotoğraf hizmeti, Yerler ve Google+ Yerel veritabanında depolanan milyonlarca fotoğrafa erişmenizi sağlar. Yer Ayrıntıları isteğini kullanarak yer bilgilerini aldığınızda, ilgili fotoğraf içeriği için fotoğraf referansları döndürülür. Ayrıca, Yakındaki Arama ve Metin Arama istekleri, alakalı olduğu durumlarda her yer için tek bir fotoğraf referansı döndürür. Ardından Fotoğraf hizmetini kullanarak referans verilen fotoğraflara erişebilir ve resmi, uygulamanız için en uygun boyutta olacak şekilde yeniden boyutlandırabilirsiniz.

Bir PlacesService ile ilgili olarak yapılan tüm getDetails(), textSearch() veya nearbySearch() istekleri için bir PlacePhoto nesnesi dizisi PlaceResult nesnesinin parçası olarak döndürülür.

Not: Döndürülen fotoğrafların sayısı isteğe göre değişir.

  • Yakındaki Arama veya Metin Arama, en fazla bir PlacePhoto nesnesi döndürür.
  • Ayrıntılar isteği, en fazla on PlacePhoto nesne döndürür.

PlacePhoto.getUrl() yöntemini çağırıp geçerli bir PhotoOptions nesnesi ileterek ilişkili resmin URL'sini isteyebilirsiniz. PhotoOptions nesnesi, resmin maksimum yüksekliği ve genişliğini belirtmenize olanak tanır. Hem maxHeight hem de maxWidth için bir değer belirtirseniz fotoğraf hizmeti, orijinal en boy oranını koruyarak resmi iki boyuttan daha küçük olacak şekilde yeniden boyutlandırır.

Aşağıdaki kod snippet'i bir yer nesnesi kabul eder ve fotoğraf varsa haritaya bir işaretçi ekler. Varsayılan işaretçi resmi, fotoğrafın küçük bir sürümüyle değiştirilir.

function createPhotoMarker(place) {
  var photos = place.photos;
  if (!photos) {
    return;
  }

  var marker = new google.maps.Marker({
    map: map,
    position: place.geometry.location,
    title: place.name,
    icon: photos[0].getUrl({maxWidth: 35, maxHeight: 35})
  });
}

Fotoğraf hizmeti tarafından döndürülen fotoğraflar, işletme sahipleri ve kullanıcıların eklediği fotoğraflar dahil olmak üzere çeşitli konumlardan elde edilir. Çoğu durumda, bu fotoğraflar ilişkilendirme olmadan kullanılabilir veya resmin bir parçası olarak gerekli atıfın eklenmesi gerekir. Ancak, döndürülen photo öğesi html_attributions alanında bir değer içeriyorsa resmi görüntülediğiniz her yerde ek ilişkilendirmeyi uygulamanıza dahil etmeniz gerekir.