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ığı'nda bulunan Haritalar JavaScript API'si işlevleri, uygulamanızın bir haritanın sınırları veya sabit bir nokta çevresinde belirli bir alan içinde bulunan yerleri (bu API'de kuruluşlar, coğrafi konumlar veya önemli noktalar olarak tanımlanmış) aramasına olanak sağlar.

Places API, uygulamalarınıza Google Haritalar arama alanının ileri düzey arama davranışını sağlamak için kullanabileceğiniz bir otomatik tamamlama özelliği sunar. Kullanıcı bir adresi yazmaya başladığında, geri kalan kısmı otomatik tamamlama dolduracaktır. Daha fazla bilgi için otomatik tamamlama dokümanlarına bakın.

Başlarken

Maps JavaScript API veya JavaScript hakkında bilgi sahibi değilseniz başlamadan önce JavaScript'i ve API Anahtarı alma bölümünü incelemenizi öneririz.

API'leri etkinleştir

Maps JavaScript API'de Yerler kitaplığını kullanmadan önce, Google Maps Console'da Yerler API'sinin etkinleştirildiğinden emin olun. Bu işlem, Maps JavaScript API için ayarladığınız projedir.

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

  1. Google Cloud Console'a gidin.
  2. Bir proje seçin düğmesini tıklayın, ardından Maps JavaScript API için ayarladığınız projeyi seçin ve 'ı tıklayın.
  3. Kontrol Paneli'ndeki API listesinde Places API'yi bulun.
  4. Listede Places API'yi görüyorsanız bu, API'nin zaten etkin olduğu anlamına gelir. API listelenmiyorsa etkinleştirin:
    1. Kitaplık sekmesini görmek için sayfanın üst kısmından API'LERİ VE HİZMETLERİ ETKİNLEŞTİR'i seçin. Alternatif olarak, sol kısımdaki menüden Kitaplık'ı seçin.
    2. Places API'yi arayıp sonuç listesinden seçin.
    3. ETKİNLEŞTİR'i seçin. Süreç tamamlandığında, Kontrol Paneli'ndeki API'ler listesinde Places API görünür.

Kitaplık yükleniyor

Rehber 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 Maps API önyükleme URL'sindeki libraries parametresini kullanarak 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üne bakın.

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 bir API veya SDK'ya gönderilen istekler işlenir. API anahtarıyla ilişkilendirilmemiş API veya SDK'lara yapılan istekler başarısız olur. 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ğini sağlamak 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. Credentials (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 Maps JavaScript API ile Places API'yi seçin.
        (API'lerden biri listede yoksa bunu 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ümanında açıklandığı şekilde bir Yer Kullanımı API ile paylaşır. Aynı projeyi paylaşan kullanıcıların sayısına bakılmaksızın, saniye başına sorgu sayısı sorgu sayısı kullanıcı oturumu başına uygulanır.*

Not: API'yi ilk yüklediğinizde size ilk istek kotası atanır. Bu kota kullandığınızda API, saniye başına ek isteklerde hız sınırları uygular. Belirli bir dönem içinde çok fazla istek yapılırsa API, bir OVER_QUERY_LIMIT yanıt kodu döndürür. Oturum başına hız sınırı, toplu istekler için istemci taraflı hizmetlerin kullanılmasını engeller. Toplu istekler için web hizmeti API'lerimizi kullanın.

Politikalar

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

Yer Aramaları

Yerler hizmetiyle aşağıdaki arama türlerini gerçekleştirebilirsiniz:

Döndürülen bilgiler, restoranların (ör. restoranlar, mağazalar ve ofisler) yanı sıra adresleri, kentler ve şehirler gibi siyasi alanları ve diğer önemli yerleri gösteren ' coğrafi kodlama' sonuçlarını içerebilir.

Yer Bulma isteği

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

Sorgudan Yer Bulma

Sorgudan Yer Bul seçeneği bir metin girişi alır ve bir yer döndürür. Giriş, işletme adı veya adresi gibi herhangi bir türden Yer verisi olabilir. Sorgu isteğinden bir Yer bulmak için PlaceService's findPlaceFromQuery() yöntemini çağırın. Bu yöntem aşağıdaki parametreleri alır:

  • query (zorunlu) Aranacak metin dizesi. Örneğin: "restoran" veya &123 Ana Cadde". Bu, yer adı, adres veya kuruluş kategorisi olmalıdır. Diğer giriş türleri hata oluşturabilir ve geçerli sonuçlar döndüreceği garanti edilmez. Places API, bu dizeyi temel alarak aday eşleşmelerini döndürecek ve sonuçları algılanan alaka düzeyine göre sıralayacak.
  • fields (gerekli) Döndürülecek Yer verisi türlerini belirten bir veya daha fazla alan.
  • locationBias (isteğe bağlı) Arama yapılacak alanı tanımlayan koordinatlar. Şunlardan biri olabilir:

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

Aşağıdaki örnekte, "Avustralya Modern Sanat Müzesi" araması yapan name ve geometry alanlarının dahil olduğu findPlaceFromQuery() çağrısı gösterilmiştir.

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 yeri döndürür. Telefon Numarasından Yer Bulma isteğinde bulunmak için aşağıdaki parametreleri alan PlaceService's findPlaceFromPhoneNumber() yöntemini çağırın:

  • phoneNumber (zorunlu) E.164 biçiminde bir telefon numarası.
  • fields (gerekli) Döndürülecek Yer verisi türlerini belirten bir veya daha fazla alan.
  • locationBias (isteğe bağlı) Arama yapılacak alanı tanımlayan koordinatlar. Şunlardan biri olabilir:

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

Alanlar (Yer yöntemlerini bulma)

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 nokta kullanın. Örneğin: opening_hours.weekday_text.

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

Temel

Temel kategori ş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 kategorisi aşağıdaki alanı içerir: opening_hours
(Yerler, Maps JavaScript API'de kullanımdan kaldırıldı. opening_hours sonuçlarını almak için Yer Ayrıntıları isteğini 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 sapmasını ayarlama (Yer bulma yöntemleri)

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

Belirli bir bölgeyle ilgili ön yargı sonuçları:

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

Arama yapmak için dikdörtgen bir alan tanımlayın:

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

LatLngBounds da kullanabilirsiniz.

Belirli bir alanı merkez alacak şekilde arama alanını (metre cinsinden) belirleyin:

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

Yakındaki Arama İstekleri

Yakındaki Arama özelliği, anahtar kelime veya türe göre belirli bir bölgedeki yerleri aramanıza olanak tanır. Yakındaki Arama her zaman aşağıdaki iki yöntemden biriyle belirtilebilen bir konum içermelidir:

  • LatLngBounds.
  • location özelliğinin kombinasyonu olarak tanımlanan dairesel bir alan (çemberin merkezini LatLng nesnesi olarak belirtir) ve metre cinsinden ölçülen yarıçap.

Yakındaki Yerler araması, PlacesService adlı yönteme nearbySearch() yöntemi çağrılmasıyla başlatılır. Bu yöntem, bir dizi PlaceResult nesnesi döndürür. 3.9 sürümünden itibaren nearbySearch() yönteminin, 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 alanlara sahip bir istek alır:

  • Aşağıdakilerden 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 nesnesini, ikincisi ise dairenin yarıçapını metre cinsinden gösteren basit bir tam sayı alır. İzin verilen maksimum yarıçap 50.000 metredir. rankBy öğesi DISTANCE değerine ayarlandığında, bir location belirtmeniz gerekir, ancak bir radius veya bounds belirtemezsiniz.
  • keyword (isteğe bağlı): Ad, tür, adres, müşteri yorumları ve diğer üçüncü taraf içerikler dahil ancak bunlarla sınırlı olmamak üzere, kullanılabilir tüm alanlarla eşleştirilecek bir terimdir.
  • 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 bir parçası olarak aktarılır.
  • openNow (isteğe bağlı): Yerin hizmetinin yalnızca sorgu gönderildiğinde açık olan yerleri döndürmesi gerektiğini belirten bir boole değeridir. Sorgunuza bu parametreyi eklerseniz Google Yerler veritabanında çalışma saatlerini belirtmeyen yerler döndürülmez. openNow false olarak ayarlamanı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, yakında bulunan ancak daha az belirgin olan ve yakındaki yarıçapa göre belirlenen belirgin yerleri tercih eder. Önem; bir yerin Google dizinindeki sıralamasından, küresel popülerlikten ve diğer faktörlerden etkilenebilir. google.maps.places.RankBy.PROMINENCE belirtildiğinde radius parametresi zorunludur.
    • google.maps.places.RankBy.DISTANCE. Bu seçenek, sonuçları belirtilen location mesafelerine göre artan düzende sıralar (zorunlu). RankBy.DISTANCE özelliğini belirtirseniz özel bir bounds ve/veya radius belirtemeyeceğinizi unutmayın. RankBy.DISTANCE öğesini belirttiğinizde, bir veya daha fazla keyword, name ya da type 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şten sonraki tüm türler yok sayılır). Desteklenen türlerin listesine bakın.

Sonuç nesnesini ve google.maps.places.PlacesServiceStatus yanıtını yönetmek için ayrıca bir nearbySearch() 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',
    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 dize temelinde bir dizi yer hakkında bilgi döndüren bir web hizmetidir (ör. İstanbul'daki pizzacı veya "Ottawa" yakınındaki "ayakkabı mağazaları"). Hizmet, metin dizesiyle ve ayarlanmış tüm konum sapmalarıyla eşleşen yerlerin listesini içeren bir yanıt gönderir. Arama yanıtında yerlerin listesi yer alır. Yanıttaki yerler hakkında daha fazla bilgi için Yer Ayrıntıları isteği gönderebilirsiniz.

Metin Aramalar, PlacesService's textSearch() yöntemine çağrı yapılarak başlatılır.

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

Bu yöntem, aşağıdaki alanlara sahip bir istek alır:

  • query (zorunludur) Aranacak metin dizesi, ör. "quot;restoran" veya "123 Ana Cadde". Bu, yer adı, adres veya kuruluş 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 göre aday eşleşmelerini döndürür ve sonuçları, algılanan alaka düzeyine göre sıralar. Arama isteğinde type parametresi 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 belirten bir boole değeridir. Sorgunuza bu parametreyi eklerseniz Google Yerler veritabanında çalışma saatlerini belirtmeyen yerler döndürülmez. openNow false olarak ayarlamanı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ı) aralığındadır (dahil).
    • Aşağıdakilerden biri:
      • bounds: Aranacak dikdörtgeni tanımlayan bir google.maps.LatLngBounds nesnesi veya
      • location ve radius - location ve radius parametresini ileterek sonuçları belirtilen bir dairenin önüne geçirebilirsiniz. Bu şekilde Yerler hizmeti, daire içinde sonuç göstermeyi tercih edebilir. 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 gösteren basit bir tam sayı olur. İzin verilen maksimum yarıçap 50.000 metredir.
    • type: Sonuçları, belirtilen türle eşleşen yerlerle sınırlandırır. Yalnızca bir tür belirtilebilir (birden fazla tür sağlanırsa ilk girişten sonraki tüm türler yok sayılır). Desteklenen türlerin listesine bakın.

Sonuç nesnesini işlemek için bir textSearch() geri çağırma yöntemi ve bir google.maps.places.PlacesServiceStatus yanıtı 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 izlemenize yardımcı olacak hata ayıklama bilgilerini içerebilir. Olası durum değerleri şunlardır:

  • INVALID_REQUEST: Bu istek geçersizdi.
  • OK: Yanıtta geçerli bir sonuç var.
  • OVER_QUERY_LIMIT: Web sayfası, istek kotasını aştı.
  • REQUEST_DENIED: Web sayfasının PlacesService hizmetini kullanmasına izin verilmez.
  • UNKNOWN_ERROR: Bir sunucu hatası nedeniyle PlacesService isteği işlenemedi. Tekrar denemeniz durumunda istek başarılı olabilir.
  • ZERO_RESULTS: Bu istek için sonuç bulunamadı.

Yer Arama Sonuçları

findPlace(), nearbySearch() ve textSearch() işlevleri, PlaceResult nesnesinden oluşan diziyi döndürür.

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

  • business_status, bir işletmeyse yerin çalışma durumunu belirtir. Aşağıdaki değerlerden birini içerebilir:
    • OPERATIONAL
    • CLOSED_TEMPORARILY
    • CLOSED_PERMANENTLY
    Herhangi bir veri yoksa business_status döndürülmez.
  • formatted_address, bu yerin kullanıcılar tarafından okunabilen adresini içeren bir dizedir. formatted_address özelliği yalnızca bir Metin Arama için döndürülür.

    Bu adres genellikle posta adresiyle eşdeğerdir. Lisanslama kısıtlamaları nedeniyle, Birleşik Krallık gibi bazı ülkelerin gerçek posta adreslerinin dağıtımına izin vermediğini unutmayın.

    Biçimlendirilmiş adres, mantıksal olarak bir veya daha fazla adres bileşeninden oluşur. ya

    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 geometrik bilgileri. Buna aşağıdakiler dahildir:
    • location, yerin enlemini ve boylamını belirtir.
    • viewport, bu yeri görüntülerken haritadaki 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ıldığını gösteren bir boole flag'idir (true değeri). permanently_closed kullanmayın. İşletmelerin çalışma durumunu öğrenmek için bunun yerine business_status özelliğini kullanın.
  • plus_code (bkz. Konum Kodunu Aç ve artı kodları), enlem ve boylam koordinatlarından türetilen ve bir alanı temsil eden kodlanmış konum referansıdır: 1/8000 derecenin 1/8000. derecesi (ekvatörde yaklaşık 14 x 14 m) veya daha küçük bir alanı temsil eder. Artı kodları, var olmayan yerlerde (binaların numaralandırılmamış veya sokakların adlandırılmamış olduğu) açık adresler yerine kullanılabilir.

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

    • global_code, 4 karakterli bir alan kodu ve 6 karakter veya daha uzun yerel koddur (849VCWC8+R9).
    • compound_code, açık konuma (CWC8+R9, Mountain View, CA, ABD) sahip 6 veya daha uzun yerel koddur. Bu içeriği programatik olarak 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östermeniz gereken bir dizi ilişkilendirmedir. Dizideki her giriş, tek bir ilişkilendirme için HTML metnini içerir. Not: Bu, arama yanıtının tamamı için tüm ilişkilendirmelerin toplamıdır. Bu nedenle, yanıttaki tüm PlaceResult nesneleri özdeş ilişkilendirme listeleri içerir.
  • icon, renkli 71 piksel x 71 piksel PNG simgesinin URL'sini döndürür.
  • icon_mask_base_uri, renkli olmayan bir simgenin taban URL'sinden .svg veya .png uzantısının çıkarılmasıyla elde edilen değeri döndürür.
  • icon_background_color, yer kategorisi için 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ığı, Maps JavaScript API'de kullanımdan kaldırıldı, bunun yerine utc_offset_minutes özelliğini 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ğiyle yer referans gösterme hakkında daha fazla bilgi edinin.
  • rating, toplu kullanıcı yorumlarına göre 0,0 ile 5,0 arasında bir yerin puanı içeriyor.
  • types Bu yer için bir dizi tür (ör. ["political", "locality"] veya ["restaurant", "lodging"]). Bu dizi, birden fazla değer içeriyor veya boş olabilir. Yeni değerler, önceden bildirilmeksizin sunulabilir. Desteklenen türlerin listesine bakın.
  • vicinity: Sokak adı, sokak numarası ve mahalleyi içeren ancak il/eyalet, posta kodu veya ülke içermeyen basitleştirilmiş bir adres. Örneğin, Google'ın Sidney şehrinde Avustralya ofisinin vicinity değeri 5/48 Pirrama Road, Pyrmont.

Ek Sonuçlara Erişme

Varsayılan olarak, her bir 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 kullanılabilir. Ek sayfalara erişmek için geri çağırma işleviyle PlaceSearchPagination nesnesini yakalamanız gerekir. PlaceSearchPagination nesnesi şu şekilde tanımlanır:

  • hasNextPage, başka sonuçların kullanılabilir olup olmadığını gösteren bir boole özelliğidir. true ise ek bir sonuç sayfası.
  • nextPage(), bir sonraki sonuç kümesini döndürecek bir işlevdir. Bir arama yaptıktan sonra, bir sonraki sonuç sayfasının kullanılabilir duruma gelmesi için iki saniye beklemeniz gerekir.

Bir sonraki sonuç grubunu görmek için nextPage numaralı telefonu arayın. Her sonuç sayfası, bir sonraki sonuç sayfası görüntülenmeden önce görüntülenmelidir. Her aramanın, kullanım sınırlarınıza tek bir istek olarak dahil edildiğini unutmayın.

Aşağıdaki örnekte, birden fazla arama isteği gönderebilmeniz için geri çağırma işlevinizi PlaceSearchPagination nesnesini yakalamak üzere nasıl değiştireceğiniz 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 Dene

Yer Ayrıntıları

Yerler hizmeti, bir bölgedeki yerlerin listesini sağlamaya ek olarak, belirli bir yerle ilgili ayrıntılı bilgiler de döndürebilir. Bir yer, arama araması yanıtında döndürüldükten sonra, yer kimliği söz konusu yerle ilgili tam adres, telefon numarası, kullanıcı puanı ve yorumlar gibi ek ayrıntıları istemek için kullanılabilir.

Yer Ayrıntıları İstekleri

Hizmetle ilgili getDetails() yönteminin çağrılmasıyla Yer Ayrıntıları istenir.

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

Bu yöntem, istenen yer (placeId) ve döndürülecek Yer verisi türlerini gösteren alanlar içeren bir istek alır. Yer kimliğiyle yer referans gösterme 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 alı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 dizi dize (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 nokta kullanın. Örneğin: opening_hours.weekday_text.

Alanlar Yer Ayrıntıları sonuçlarına karşılık gelir ve üç faturalandırma kategorisine ayrılmıştır: Temel, İletişim ve Atmosfer. Temel alanlar, taban ücret üzerinden 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 aramada her zaman döndürülür.

Temel

Temel kategori 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, , inin

İletişim

Kişi kategorisinde aşağıdaki alanlar bulunur:
formatted_phone_number, international_phone_number, opening_hours, website

Atmosfer

Atmosfer kategorisinde şu alanlar bulunur: price_level, rating, review, 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 bölümüne 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 izlemenize yardımcı olacak hata ayıklama bilgilerini içerebilir. Olası durum değerleri şunlardır:

  • INVALID_REQUEST: Bu istek geçersizdi.
  • OK: Yanıtta geçerli bir sonuç var.
  • OVER_QUERY_LIMIT: Web sayfası, istek kotasını aştı.
  • NOT_FOUND Başvurulan konum, Yerler veritabanında bulunamadı.
  • REQUEST_DENIED: Web sayfasının PlacesService hizmetini kullanmasına izin verilmez.
  • UNKNOWN_ERROR: Bir sunucu hatası nedeniyle PlacesService isteği işlenemedi. Tekrar denemeniz durumunda istek başarılı olabilir.
  • ZERO_RESULTS: Bu istek için sonuç bulunamadı.

Yer Ayrıntıları Sonuçları

Başarılı bir 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şeni için kullanılan kısaltılmış bir metin adıdır. Örneğin, Alaska eyaletindeki bir adres bileşeninde "Alaska" için long_name ve 2 harfli posta kısaltması olan short_name "AK" bulunur.

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

    • Adres bileşenleri dizisi, formatted_address öğesinden daha fazla bileşen içerebilir.
    • Dizi, formatted_address'da yer alan tüzel kişiler dışında, adres içeren tüm siyasi tüzel kişileri kapsamaz. Belirli bir adres içeren tüm siyasi varlıkları almak için, adresin enlem/boylamını isteğe parametre olarak ileterek tersine coğrafi kodlama kullanmanız gerekir.
    • Yanıt biçiminin istekler arasında aynı olacağı garanti edilmez. Özellikle address_components sayısı, talep edilen adrese göre değişir ve aynı adres için zamanla 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 belirtir. Aşağıdaki değerlerden birini içerebilir:
    • OPERATIONAL
    • CLOSED_TEMPORARILY
    • CLOSED_PERMANENTLY
    Herhangi bir veri yoksa business_status döndürülmez.
  • formatted_address: Bu yerin kullanıcılar tarafından okunabilen adresi.

    Bu adres genellikle posta adresiyle eşdeğerdir. Lisanslama kısıtlamaları nedeniyle, Birleşik Krallık gibi bazı ülkelerin gerçek posta adreslerinin dağıtımına izin vermediğini unutmayın.

    Biçimlendirilmiş adres, mantıksal olarak bir veya daha fazla adres bileşeninden oluşur. ya

    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: Mekanın telefon numarası, sayısal bölgesel kurala göre biçimlendirilir.
  • geometry: Yerin geometrik bilgileri. Buna aşağıdakiler dahildir:
    • location, yerin enlemini ve boylamını belirtir.
    • viewport, bu yeri görüntülerken haritadaki 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ıldığını gösteren bir boole flag'idir (true değeri). permanently_closed kullanmayın. İşletmelerin çalışma durumunu öğrenmek için bunun yerine business_status özelliğini kullanın.
  • plus_code (bkz. Konum Kodunu Aç ve artı kodları), enlem ve boylam koordinatlarından türetilen ve bir alanı temsil eden kodlanmış konum referansıdır: 1/8000 derecenin 1/8000. derecesi (ekvatörde yaklaşık 14 x 14 m) veya daha küçük bir alanı temsil eder. Artı kodları, var olmayan yerlerde (binaların numaralandırılmamış veya sokakların adlandırılmamış olduğu) açık adresler yerine kullanılabilir.

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

    • global_code, 4 karakterli bir alan kodu ve 6 karakter veya daha uzun yerel koddur (849VCWC8+R9).
    • compound_code, açık konuma (CWC8+R9, Mountain View, CA, ABD) sahip 6 veya daha uzun yerel koddur. Bu içeriği programatik olarak 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 sonucunun gösterileceği ilişkilendirme metni.
  • icon: Bu yerin türünü temsil etmek için kullanılabilecek bir resim kaynağının URL'si.
  • international_phone_number, yerin telefon numarasını uluslararası standarda uygun bir şekilde içeriyor. Uluslararası biçim, ülke kodunu içerir ve başına artı (+) işareti eklenir. Örneğin, Google'ın Sidney, Avustralya ofisinin international_phone_number değeri +61 2 9374 4000 şeklindedir.
  • name: Yerin adı.
  • utc_offset Yerler Kitaplığı'nda, Maps JavaScript API'de kullanımdan kaldırıldı. Bunun yerine utc_offset_minutes politikasını kullanın.
  • utc_offset_minutes, bu yerin geçerli saat diliminin UTC ile farkını gösteren dakika sayısını içerir. Örneğin, Avustralya'nın Sydney şehrinde yaz saati uygulaması sırasında bu süre, 660 (UTC'den +11 saat) ve Kaliforniya'da yaz saati olmayan yerler için -480 (UTC'den -8 saat) olur.
  • opening_hours aşağıdaki bilgileri içerir:
    • open_now (Yerler, Maps JavaScript API'de kullanımdan kaldırıldı. Bunun yerine opening_hours.isOpen() işlevini kullanın. isOpen ürününün Yer Ayrıntıları ile nasıl kullanılacağını öğrenmek için bu videoya bakın.) yerin geçerli saatte açık olup olmadığını gösteren bir boole değeridir.
    • periods[], Pazar gününden 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, Pazar gününden başlayarak haftanın günlerine karşılık gelen, 0-6 arasında bir sayıdır. Örneğin, 2, Salı anlamına gelir.
        • time, 24 saat sss biçiminde bir saat içerebilir (değerler 0000–2359 aralığındadır). time, yerin saat dilimine göre raporlanır.
      • close, yerin ne zaman kapandığını açıklayan bir çift gün ve saat nesnesi içerebilir. Not: Bir yer her zaman açıksa yanıtta close bölümü eksik olur. Uygulamalar her zaman açık olmakla birlikte 0 değerine sahip day ve 0000 değerine sahip time içeren ve open olmayan close 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 göre biçimlendirir ve yerelleştirir. Bu dizideki öğelerin sıralaması language parametresine bağlıdır. Bazı diller hafta içi Pazartesi, bazıları ise Pazar günü başlar.
  • permanently_closed (kullanımdan kaldırıldı), yerin kalıcı olarak mı yoksa geçici olarak mı kapatıldığını gösteren bir boole flag'idir (true değeri). permanently_closed kullanmayın. İşletmelerin çalışma durumunu öğrenmek için bunun yerine business_status özelliğini kullanın.
  • photos[]: PlacePhoto nesne dizisi. PlacePhoto, getUrl() yöntemiyle bir fotoğraf edinmek 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österilir.
  • 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ılabilecek metin tanımlayıcısıdır. Yer kimliğiyle yer referans gösterme hakkında daha fazla bilgi edinin.
  • rating: Yerin puanı, 0,0 ile 5,0 arasındadır (toplam kullanıcı yorumlarına göre).
  • reviews Beş adede kadar 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 derecelendirmesini sağlar. Dizideki ilk nesne birincil boyut olarak kabul edilir. Her PlaceAspectRating şu şekilde tanımlanır:
      • type Puan verilen özelliğin adı. Desteklenen türler şunlardır: appeal, atmosphere, decor, facilities, food, overall, quality ve service.
      • rating Kullanıcının bu özellikle ilgili 0'dan 3'e kadar puan vermesi.
    • author_name Yorumu gönderen kullanıcının adı. Anonim yorumlar "Bir Google kullanıcısı" ile ilişkilendirilir. Dil parametresi ayarlanmışsa "Google kullanıcısı" ifadesi, yerelleştirilmiş dize döndürür.
    • author_url URL'si (varsa), kullanıcının Google+ profilidir.
    • language Kullanıcının yorumunda kullandığı dili belirten bir IETF dil kodu. Bu alanda yalnızca ana dil etiketi bulunur, ülke veya bölgeyi belirten ikincil etiket bulunmaz. Örneğin, tüm İngilizce yorumlar 'tr' olarak etiketlenir ve 'en-AU' veya 'en-UK' şeklinde etiketlenmez.
    • rating Bu yerin genel kullanıcı puanı. Bu, 1 ile 5 arasında bir tam sayıdır.
    • text adlı kullanıcının yorumu. Bir konum Google Rehber ile incelenirken metin yorumları 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çeriyor veya boş olabilir. Yeni değerler, önceden bildirilmeksizin 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 bilgilerin yer aldığı, Google'a ait sayfadır. Uygulamalar, kullanıcıya yerle ilgili ayrıntılı sonuçların gösterildiği herhangi bir ekrana bağlantı vermeli veya bu sayfayı yerleştirmelidir.
  • vicinity: Sokak adı, sokak numarası ve mahalleyi içeren ancak il/eyalet, posta kodu veya ülke içermeyen basitleştirilmiş bir adres. Örneğin, Google'ın Sidney şehrinde Avustralya ofisinin vicinity değeri 5/48 Pirrama Road, Pyrmont. vicinity özelliği yalnızca bir Yakın Arama için döndürülür.
  • website, bu yerin yetkili web sitesini (ör. işletme ana sayfası) listeler.

Not: Çok boyutlu puanlar tüm konumlar için kullanılamayabilir. Çok az yorum varsa ayrıntı yanıtı, 0,0 ila 5,0 ölçeğinde eski bir derecelendirme (varsa) içerir veya hiç puan içermez.

Yer Kimliği olan bir Yere referans verme

Yer kimliği, bir Google haritasındaki 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 kimliği aramanız gerekir. Söz konusu kimlik, Yer Arama veya Ayrıntılar isteğinin PlaceResult kimliğinde kullanılabilir. 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 depolama konusunda en iyi uygulamalar için yer kimliğine genel bakış bölümü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çerikleri eklemenize olanak sağlar. 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 bilgileri aldığınızda, ilgili fotoğraf içeriği için fotoğraf referansları döndürülür. Yakındaki Arama ve Metin Arama istekleri, alakalı olduğu durumlarda her yer için tek bir fotoğraf referansı döndürür. Fotoğraf hizmetini kullanarak referanslı fotoğraflara erişebilir ve resmi uygulamanız için en uygun boyutta yeniden boyutlandırabilirsiniz.

Bir PlacesService öğesine yönelik herhangi bir getDetails(), textSearch() veya nearbySearch() isteği için bir PlaceResult nesnesinin parçası olarak bir PlacePhoto nesne dizisi döndürülür.

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

  • Bir Yakın Arama veya Metin Arama en fazla bir PlacePhoto nesnesi döndürür.
  • Ayrıntılar isteği, en fazla on PlacePhoto nesnesi 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 istediğiniz maksimum yüksekliğini ve genişliğini belirtmenize olanak tanır. Hem maxHeight hem de maxWidth için bir değer belirtirseniz fotoğraf hizmeti, resmi en boy oranından daha küçük olacak şekilde yeniden boyutlandırır ve orijinal en boy oranını korur.

Aşağıdaki kod snippet'i bir yer nesnesini 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 hizmetinin döndürdüğü fotoğraflar, işletme sahipleri ve kullanıcıların katkıda bulunduğu fotoğraflar da dahil olmak üzere çeşitli konumlardan elde edilir. Çoğu durumda bu fotoğraflar ilişkilendirme olmadan kullanılabilir veya gerekli ilişkilendirmeyi resmin bir parçası olarak içerir. Ancak döndürülen photo öğesi html_attributions alanında bir değer içeriyorsa resmi gösterdiğiniz her yerde uygulamanıza ek ilişkilendirmeyi eklemeniz gerekir.