Yerler Kitaplığı

Avrupa Ekonomik Alanı (AEA) geliştiricileri

Genel Bakış

Maps JavaScript API'deki Yerler Kitaplığı'nda bulunan işlevler, uygulamanızın tanımlı bir alan (ör. harita sınırları) içinde veya sabit bir noktanın çevresinde yer alan yerleri (bu API'de kuruluşlar, coğrafi konumlar veya önemli ilgi alanları olarak tanımlanır) aramasını sağlar.

Places API, uygulamalarınıza Google Haritalar arama alanının yazarken arama yapma davranışını kazandırmak için kullanabileceğiniz bir otomatik tamamlama özelliği sunar. Bir kullanıcı adres yazmaya başladığında otomatik tamamlama, geri kalanını doldurur. Daha fazla bilgi için otomatik tamamlama belgelerine bakın.

Başlarken

Maps JavaScript API veya JavaScript hakkında bilginiz yoksa başlamadan önce JavaScript ve API anahtarı edinme başlıklı makaleleri incelemenizi öneririz.

Kitaplığı yükleme

Yer Hizmeti, ana Maps JavaScript API kodundan ayrı, bağımsız bir kitaplıktır. Bu kitaplıkta yer alan işlevleri kullanmak için önce kitaplığı Maps API bootstrap URL'sindeki libraries parametresini kullanarak yüklemeniz gerekir:

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

Daha fazla bilgi için Kitaplıklara Genel Bakış başlıklı makaleyi inceleyin.

Places API'yi (Eski) API anahtarının API kısıtlamaları listesine ekleyin.

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 yapılan istekler işlenir. API anahtarıyla ilişkilendirilmemiş bir API veya SDK'ya yapılan istekler başarısız olur. Bir API anahtarının Places Library, Maps JavaScript API ile kullanımını kısıtlamak için:
  1. Google Cloud Console'a gidin.
  2. Proje açılır listesini 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. 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ıtla ve yeniden adlandır sayfasında kısıtlamaları ayarlayın:
    • API kısıtlamaları
      • Anahtarı kısıtla'yı seçin.
      • Select APIs'i (API'leri seç) tıklayın ve hem Maps JavaScript API hem de Places API (Legacy)'yi (Yer API'si (Eski)) seçin.
        (API'lerden biri listelenmiyorsa etkinleştirmeniz gerekir.)
  6. KAYDET'i tıklayın.

Kullanım sınırları ve politikaları

Kotalar

Yer Kitaplığı, Places API'nin kullanım sınırları dokümanında açıklandığı gibi Places API ile kullanım kotasını paylaşır.

Politikalar

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

Yer Aramaları

Yer 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 şehir gibi siyasi bölgeleri ve diğer ilgi çekici yerleri gösteren "coğrafi kod" sonuçları da yer alabilir.

Find Place (Legacy) istekleri

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 Bulma, metin girişi alır ve yer döndürür. Giriş, her türlü yer verisi olabilir (ör. işletme adı veya adres). Sorgudan Yer Bulma isteği göndermek için PlacesService'nın 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, bir 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 dizeye göre olası eşleşmeleri döndürür ve sonuçları algılanan alaka düzeylerine göre sıralar.
  • fields (zorunlu) 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. Bu, aşağıdakilerden biri olabilir:

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

Aşağıdaki örnekte, findPlaceFromQuery() için yapılan bir çağrı gösterilmektedir. Bu çağrıda "Museum of Contemporary Art Australia" aranmakta ve name ile geometry alanları dahil edilmektedir.

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örüntüleyin

Telefon numarasından yer bulma

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

  • phoneNumber (zorunlu) E.164 biçiminde bir telefon numarası.
  • fields (zorunlu) 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. Bu, aşağıdakilerden biri olabilir:
    • LatLngLiteral veya LatLng nesnesi olarak belirtilen bir enlem/boylam koordinatları grubu
    • Dikdörtgen sınırlar (dört enlem/boylam noktası veya LatLngBounds nesnesi)
    • Bir enlem/boylam üzerinde ortalanmış yarıçap (metre cinsinden)

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

Alanlar (Find Place yöntemleri)

Döndürülecek yer verisi türleri dizisini 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ılır: Temel, İletişim ve Atmosfer. Temel alanlar, taban ücret üzerinden faturalandırılır ve ek ücret alınmaz. İletişim ve Atmosfer alanları daha yüksek bir ücretle faturalandırılır. Daha fazla bilgi için fiyatlandırma sayfasına bakın. Alan istenmiş olsun veya olmasın, ilişkilendirmeler (html_attributions) her zaman her aramayla birlikte döndürülür.

Temel

Temel kategorisi aşağıdaki 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
(Yer Kitaplığı, Maps JavaScript API'de kullanımdan kaldırıldı. opening_hours sonuçlarını almak için yer ayrıntıları isteği kullanın.

Atmosfer

Atmosfer kategorisi aşağıdaki alanları içerir: price_level, rating, user_ratings_total

findPlaceFromQuery() ve findPlaceFromPhoneNumber() yöntemleri aynı alan grubunu alır ve kendi yanıtlarında aynı alanları döndürebilir.

Konum önyargısı ayarlama (Find Place yöntemleri)

Yeri Bulma özelliğinin belirli bir bölgedeki sonuçları tercih etmesini sağlamak için locationBias parametresini kullanın. locationBias uygulamasını aşağıdaki şekillerde ayarlayabilirsiniz:

Sonuçları belirli bir alana göre yönlendirme:

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

Arama yapılacak 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ın merkezinde olmak üzere aranacak bir yarıçap tanımlayın (metre cinsinden):

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

Yakında Arama İstekleri

Yakında arama özelliği, belirli bir alandaki yerleri anahtar kelimeye veya türe göre aramanıza olanak tanır. Yakındaki Arama her zaman bir konum içermelidir. Bu konum iki şekilde belirtilebilir:

  • a LatLngBounds.
  • Dairenin merkezini LatLng nesnesi olarak belirten location özelliği ile metre cinsinden ölçülen bir yarıçapın birleşimi olarak tanımlanan dairesel alan.

Yakındaki Yerler araması, PlacesService'ın nearbySearch() yöntemi çağrılarak başlatılır. Bu yöntem, PlaceResult nesnelerinden oluşan bir dizi döndürü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öntemde aşağıdaki alanları içeren bir istek kullanılır:

  • Aşağıdakilerden biri:
    • bounds, dikdörtgen arama alanını tanımlayan bir google.maps.LatLngBounds nesnesi olmalıdır. Sınırlanmış alan için desteklenen maksimum çapraz mesafe yaklaşık 100.000 metredir.
    • location ve radius; ilki google.maps.LatLng nesnesini, ikincisi ise dairenin yarıçapını metre cinsinden temsil eden basit bir tam sayıyı alır. İzin verilen maksimum yarıçap 50.000 metredir. rankBy DISTANCE olarak ayarlandığında location belirtmeniz gerektiğini ancak radius veya bounds belirtemeyeceğinizi unutmayın.
  • keyword (isteğe bağlı): Ad, tür ve adresin yanı sıra müşteri yorumları ve diğer üçüncü taraf içerikleri dahil ancak bunlarla sınırlı olmamak üzere tüm kullanılabilir 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 olmalıdır.
  • name Desteği sonlandı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 iletilir.
  • openNow (isteğe bağlı) — Yerler hizmetinin yalnızca sorgu gönderildiği sırada açık olan yerleri döndürmesi gerektiğini belirten bir Boole değeri. Google Yerler veritabanında çalışma saatlerini belirtmeyen yerler, sorgunuza bu parametreyi dahil ederseniz döndürülmez. openNow ayarını false olarak ayarlamanın herhangi bir etkisi olmaz.
  • rankBy (isteğe bağlı) — Sonuçların listeleneceğ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ıralamada, belirlenen yarıçap içindeki önemli yerler, yakındaki ancak daha az önemli olan ve eşleşen yerlere göre öncelikli gösterilir. Öne çıkma durumu, bir yerin Google dizinindeki sıralaması, küresel popülerliği ve diğer faktörlerden etkilenebilir. google.maps.places.RankBy.PROMINENCE belirtildiğinde radius parametresi gereklidir.
    • google.maps.places.RankBy.DISTANCE. Bu seçenek, sonuçları belirtilen location konumuna (zorunlu) olan mesafelerine göre artan düzende sıralar. RankBy.DISTANCE özelliğini belirtirseniz özel bir bounds ve/veya radius belirtemeyeceğinizi unutmayın. RankBy.DISTANCE özelliğini belirttiğinizde keyword, name veya type özelliklerinden en az biri gereklidir.
  • type: Sonuçları, belirtilen türe uygun yerlerle kısıtlar. Yalnızca bir tür belirtilebilir (birden fazla tür sağlanırsa ilk girişten sonraki tüm türler yoksayılır). Desteklenen türlerin listesine bakın.

Ayrıca, sonuç nesnesini ve google.maps.places.PlacesServiceStatus yanıtını işlemek için nearbySearch() yöntemine 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,
    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örüntüleyin

Metin Arama İstekleri

Google Places Text Search hizmeti, bir dizeye (ör. "New York'ta pizza" veya "Ottawa yakınlarındaki ayakkabı mağazaları") dayalı olarak bir dizi yerle ilgili bilgileri döndüren bir web hizmetidir. Hizmet, metin dizesiyle eşleşen yerlerin listesi ve ayarlanan konum önyargısıyla yanıt verir. Arama yanıtında bir yer listesi yer alır. Yanıttaki yerlerden herhangi biri hakkında daha fazla bilgi edinmek için Yer Ayrıntıları isteği gönderebilirsiniz.

Metin aramaları, PlacesService'nın textSearch() yöntemiyle yapılan bir çağrıyla başlatılır.

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

Bu yöntemde aşağıdaki alanları içeren bir istek kullanılır:

  • query (zorunlu) Üzerinde arama yapılacak metin dizesi. Örneğin: "restoran" veya "123 Ana Cadde". Bu, bir 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 hizmeti, bu dizeye göre olası eşleşmeleri döndürür ve sonuçları algılanan alaka düzeylerine göre sıralar. Bu parametre, arama isteğinde type parametresi de kullanılıyorsa isteğe bağlı hale gelir.
  • İsteğe bağlı:
    • openNow: Yerler hizmetinin yalnızca sorgu gönderildiği sırada işletmeye açık olan yerleri döndürmesi gerektiğini belirten bir Boole değeri. Google Yerler veritabanında çalışma saatlerini belirtmeyen yerler, sorgunuza bu parametreyi dahil ederseniz döndürülmez. openNow ayarını 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ı) arasındaki aralıkta yer alır.
    • Aşağıdakilerden biri:
      • bounds, dikdörtgen arama alanını tanımlayan bir google.maps.LatLngBounds nesnesi olmalıdır. Sınırlar alanının desteklenen maksimum çapraz mesafesi yaklaşık 100.000 metredir.
      • location ve radius: location ve radius parametrelerini ileterek sonuçları belirli bir daireye göre yönlendirebilirsiniz. Bu işlem, Yerler hizmetine sonuçları söz konusu daire içinde göstermeyi tercih etmesi talimatını verir. Tanımlanan alanın dışındaki sonuçlar gösterilmeye devam edebilir. Konum, google.maps.LatLng nesnesini alır ve yarıçap, dairenin yarıçapını metre cinsinden temsil eden basit bir tam sayı alır. İzin verilen maksimum yarıçap 50.000 metredir.
    • type: Sonuçları, belirtilen türle eşleşen yerlerle kısıtlar. Yalnızca bir tür belirtilebilir (birden fazla tür sağlanırsa ilk girişten sonraki tüm türler yoksayılır). Desteklenen türlerin listesine bakın.

Ayrıca sonuç nesnesini ve google.maps.places.PlacesServiceStatus yanıtını işlemek için textSearch()'ya 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 bulmanıza 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şmış.
  • REQUEST_DENIED: Web sayfasının PlacesService'i kullanmasına izin verilmiyor.
  • UNKNOWN_ERROR: PlacesService isteği, 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, PlaceResult nesnelerinden oluşan bir dizi döndürür.

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

  • business_status, bir işletme ise yerin faaliyet 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 kullanıcıların okuyabileceği adresini içeren bir dizedir. formatted_address özelliği yalnızca Metin Arama için döndürülür.

    Bu adres genellikle posta adresine 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 unutmayın.

    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: Yerle ilgili geometri bilgileri. Bu tür içerikler aşağıdakileri kapsar:
    • location, yerin enlem ve boylamını sağlar.
    • viewport, bu yer görüntülenirken haritadaki tercih edilen görüntü alanını tanımlar.
  • permanently_closed (kullanımdan kaldırıldı), yerin kalıcı veya geçici olarak kapatılıp kapatılmadığını (değer true) belirten bir Boole işaretidir. permanently_closed kullanmayın. Bunun yerine, işletmelerin operasyonel durumunu almak için business_status kullanın.
  • plus_code (bkz. Open Location Code ve Plus Code'lar) bir alanı temsil eden, enlem ve boylam koordinatlarından elde edilen kodlanmış bir konum referansıdır: 1/8000 dereceye 1/8000 derece (ekvatorda yaklaşık 14 m x 14 m) veya daha küçük. Artı kodları, sokak adreslerinin olmadığı yerlerde (binaların numaralandırılmadığı veya sokakların adlandırılmadığı) sokak adreslerinin yerine kullanılabilir.

    Plus Code, global kod ve bileşik kod olarak biçimlendirilir:

    • global_code, 4 karakterlik bir alan kodu ve 6 karakterlik veya daha uzun bir yerel koddur (849VCWC8+R9).
    • compound_code, açık bir konuma sahip 6 karakterli veya daha uzun bir yerel koddur (CWC8+R9, Mountain View, CA, ABD). Bu içeriği programatik olarak ayrıştırmayın.
    Genellikle hem genel kod hem de bileşik kod döndürülür. Ancak sonuç uzak bir konumdaysa (ör. okyanus veya çöl) yalnızca genel kod döndürülebilir.
  • html_attributions: Arama sonuçlarını gösterirken göstermeniz gereken ilişkilendirme 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 birleştirilmiş halidir. Bu nedenle, yanıttaki tüm PlaceResult nesneleri 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, .svg veya .png uzantısı hariç olmak üzere renksiz bir simgenin temel URL'sini döndürür.
  • icon_background_color, yerin kategorisi için varsayılan onaltılık renk kodunu döndürür.
  • name: Yer adı.
  • opening_hours aşağıdaki bilgileri içerebilir:
    • open_now, yerin şu anda açık olup olmadığını belirten bir Boole değeridir (Yer Kitaplığı, Maps JavaScript API'de kullanımdan kaldırıldı. Bunun yerine utc_offset_minutes kullanın).
  • place_id, bir yeri benzersiz şekilde tanımlayan metin tanımlayıcısıdır. Yerle ilgili bilgileri almak için bu tanımlayıcıyı Yer Ayrıntıları isteğinde iletin. Yer kimliğiyle bir yere referans verme hakkında daha fazla bilgi edinin.
  • rating, toplu kullanıcı yorumlarına göre yerin 0,0 ile 5,0 arasındaki puanını içerir.
  • types Bu yerin türlerinin dizisi (ör. ["political", "locality"] veya ["restaurant", "lodging"]). Bu dizi birden fazla değer içerebilir veya boş olabilir. Yeni değerler ön bildirimde bulunulmaksızın kullanıma sunulabilir. Desteklenen türlerin listesine bakın.
  • vicinity: Yerle ilgili basitleştirilmiş adres. Sokak adı, sokak numarası ve yerleşim yeri bilgilerini içerir ancak il/eyalet, posta kodu veya ülke bilgilerini içermez. Örneğin, Google'ın Avustralya, Sidney'deki ofisinin vicinity değeri 5/48 Pirrama Road, Pyrmont'dir.

Ek Sonuçlara Erişim

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

  • hasNextPage Başka sonuçların olup olmadığını belirten bir boole özelliği. true ek bir sonuç sayfası olduğunda.
  • nextPage() Sonraki sonuç grubunu döndüren bir işlev. Arama yaptıktan sonra sonuçların bir sonraki sayfasının kullanılabilir olması için iki saniye beklemeniz gerekir.

Sonraki sonuç grubunu görmek için nextPage'ı arayın. Sonraki sonuç sayfası gösterilmeden önce her sonuç sayfası gösterilmelidir. Her aramanın, kullanım sınırlarınız dahilinde tek bir istek olarak sayıldığını unutmayın.

Aşağıdaki örnekte, birden fazla arama isteği gönderebilmeniz için geri çağırma işlevinizi PlaceSearchPagination nesnesini yakalayacak şekilde 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örüntüleyin

Yer Ayrıntıları

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

Yer Ayrıntıları İstekleri

Yer ayrıntıları, hizmetin getDetails() yöntemi çağrılarak istenir.

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

Bu yöntem, bir yerin placeId değerini ve hangi tür Yerler verilerinin döndürüleceğini belirten alanları içeren bir istek alır. Yer kimliğiyle bir yere referans verme hakkında daha fazla bilgi edinin.

Ayrıca, google.maps.places.PlacesServiceStatus yanıtında iletilen durum kodunun ve google.maps.places.PlaceResult nesnesinin işlenmesi 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örüntüleyin

Alanlar (Yer ayrıntıları)

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

Döndürülecek yer verisi türleri dizisini belirtmek için fields parametresini kullanın. Örneğin: fields: ['address_components', '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ılı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 bir ücretle faturalandırılır. Daha fazla bilgi için fiyatlandırma sayfasına bakın. İlişkilendirmeler (html_attributions), istenip istenmediğine bakılmaksızın her zaman her çağrıyla birlikte döndürülür.

Temel

Temel kategoride aşağıdaki alanlar bulunur:
address_components, 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 (Yer Kitaplığı, Maps JavaScript API'de kullanımdan kaldırıldı), utc_offset_minutes, vicinity

İletişim

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

Atmosfer

Atmosfer kategorisi aşağıdaki alanları içerir: price_level, rating, reviews, user_ratings_total

Yer alanları hakkında daha fazla bilgi edinin. Yer verisi 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 bulmanıza 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şmış.
  • NOT_FOUND Başvuruda bulunulan konum, Yerler veritabanında bulunamadı.
  • REQUEST_DENIED: Web sayfasının PlacesService'i kullanmasına izin verilmiyor.
  • UNKNOWN_ERROR: PlacesService isteği, 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ı 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. Adres bileşeninin türler dizisi, söz konusu adres bileşeni için bilinen türler olmadığında boş olabilir. API, gerektiğinde yeni tür değerleri ekleyebilir. Daha fazla bilgi için Adres türleri ve adres bileşeni türleri başlıklı makaleyi inceleyin.
    • long_name, adres bileşeninin Geocoder tarafından döndürülen tam metin açıklaması veya adıdır.
    • short_name, varsa adres bileşeninin kısaltılmış metin adıdır. Örneğin, Alaska eyaletinin adres bileşeninde long_name "Alaska" ve 2 harfli posta kısaltması kullanılarak short_name "AK" olabilir.

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

    • Adres bileşenleri dizisi, formatted_address değerinden daha fazla bileşen içerebilir.
    • Dizi, formatted_address içinde yer alanlar dışında, adres içeren tüm siyasi kuruluşları içermeyebilir. Belirli bir adresi içeren tüm siyasi varlıkları almak için, isteğe parametre olarak adresin enlem/boylamını ileterek ters coğrafi kodlama kullanmanız gerekir.
    • Yanıtın biçiminin istekler arasında aynı kalacağı garanti edilmez. Özellikle address_components sayısı, istenen adrese göre değişir ve aynı adres için zaman içinde değişebilir. Bir bileşen dizideki konumunu değiştirebilir. Bileşenin türü değişebilir. Belirli bir bileşen sonraki yanıtlarda eksik olabilir.
  • business_status, bir işletme ise yerin faaliyet 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 insan tarafından okunabilir adresi.

    Bu adres genellikle posta adresine 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 unutmayın.

    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: Yerel telefon numarası biçimine göre biçimlendirilmiş işletme telefon numarası.
  • geometry: Yerle ilgili geometri bilgileri. Bu tür içerikler aşağıdakileri kapsar:
    • location, yerin enlem ve boylamını sağlar.
    • viewport, bu yer görüntülenirken haritadaki tercih edilen görüntü alanını tanımlar.
  • permanently_closed (kullanımdan kaldırıldı), yerin kalıcı veya geçici olarak kapatılıp kapatılmadığını (değer true) belirten bir Boole işaretidir. permanently_closed kullanmayın. Bunun yerine, işletmelerin operasyonel durumunu almak için business_status kullanın.
  • plus_code (bkz. Open Location Code ve Plus Code'lar) bir alanı temsil eden, enlem ve boylam koordinatlarından elde edilen kodlanmış bir konum referansıdır: 1/8000 dereceye 1/8000 derece (ekvatorda yaklaşık 14 m x 14 m) veya daha küçük. Artı kodları, sokak adreslerinin olmadığı yerlerde (binaların numaralandırılmadığı veya sokakların adlandırılmadığı) sokak adreslerinin yerine kullanılabilir.

    Plus Code, global kod ve bileşik kod olarak biçimlendirilir:

    • global_code, 4 karakterlik bir alan kodu ve 6 karakterlik veya daha uzun bir yerel koddur (849VCWC8+R9).
    • compound_code, açık bir konuma sahip 6 karakterli veya daha uzun bir yerel koddur (CWC8+R9, Mountain View, CA, ABD). Bu içeriği programatik olarak ayrıştırmayın.
    Genellikle hem genel kod hem de bileşik kod döndürülür. Ancak sonuç uzak bir konumdaysa (ör. okyanus veya çöl) yalnızca genel kod döndürülebilir.
  • html_attributions: Bu yer sonucu için gösterilecek atıf 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ı standartta içerir. Uluslararası standart, ülke kodunu içerir ve artı (+) işaretiyle başlar. Örneğin, Google'ın Avustralya, Sidney'deki international_phone_number ofisi için +61 2 9374 4000.
  • name: Yer adı.
  • utc_offset Kullanımdan kaldırıldı Maps JavaScript API'deki Yerler Kitaplığı'nda bunun yerine utc_offset_minutes kullanın.
  • utc_offset_minutes, bu yerin mevcut saat diliminin UTC'den kaç dakika farklı olduğunu gösterir. Örneğin, Avustralya'nın Sidney şehrinde yaz saati uygulaması sırasında bu değer 660 (UTC'den +11 saat) olurken Kaliforniya'da yaz saati uygulaması dışında bu değer -480 (UTC'den -8 saat) olur.
  • opening_hours aşağıdaki bilgileri içerir:
    • open_now (Kullanımdan kaldırıldı Yer Kitaplığı, Maps JavaScript API'de; bunun yerine opening_hours.isOpen() kullanın. isOpen ile yer ayrıntılarını kullanma hakkında bilgi edinmek için Places API'de (Eski) çalışma saatlerini alma başlıklı videoya bakın. `open_now`, yerin şu anda açık olup olmadığını belirten bir boole değeridir.
    • periods[], pazar gününden başlayarak kronolojik sırayla yedi günü kapsayan açılış dönemlerinin dizisidir. Her dönem şunları içerir:
      • open, yerin açılış saatini açıklayan bir gün ve saat nesnesi çifti içeriyor:
        • day Haftanın günlerine karşılık gelen ve pazar günüyle başlayan 0-6 arasındaki bir sayı. Örneğin, 2 sayısı Salı anlamına gelir.
        • time, 24 saatlik ssdd biçiminde günün saatini içerebilir (değerler 0000-2359 aralığındadır). time, yerin saat diliminde bildirilir.
      • close, yerin ne zaman kapandığını açıklayan bir gün ve saat nesnesi çifti içerebilir. Not: Bir yer her zaman açıksa yanıtta close bölümü yer almaz. Uygulamalar, her zaman açık olanın open dönemi olarak gösterilmesine güvenebilir. Bu dönemde day değeri 0, time değeri 0000'dır ve close yoktur.
    • 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 Places Hizmeti, çalışma saatlerini bu dile uygun şekilde biçimlendirir ve yerelleştirir. Bu dizideki öğelerin sırası language parametresine bağlıdır. Bazı dillerde hafta Pazartesi, bazılarında ise Pazar günü başlar.
  • permanently_closed (kullanımdan kaldırıldı), yerin kalıcı veya geçici olarak kapatılıp kapatılmadığını (değer true) belirten bir Boole işaretidir. permanently_closed kullanmayın. Bunun yerine, işletmelerin operasyonel durumunu almak için business_status kullanın.
  • photos[]: PlacePhoto nesneleri dizisi. PlacePhoto, getUrl() yöntemiyle fotoğraf çekmek için kullanılabilir. Alternatif olarak, nesneyi aşağıdaki değerler açısından inceleyebilirsiniz:
    • height: Resmin piksel cinsinden maksimum yüksekliği.
    • width: Resmin piksel cinsinden maksimum genişliği.
    • html_attributions: Bu yer fotoğrafıyla birlikte gösterilecek atfetme metni.
  • place_id: Bir yeri benzersiz şekilde tanımlayan ve Yer Ayrıntıları isteği kullanılarak yerle ilgili bilgileri almak için kullanılabilen metin tanımlayıcısı. Yer kimliğiyle bir yere referans verme hakkında daha fazla bilgi edinin.
  • rating: Toplu kullanıcı yorumlarına göre yerin 0, 0 ile 5, 0 arasındaki puanı.
  • reviews En fazla beş yorumdan oluşan bir dizi. Her inceleme çeşitli bileşenlerden oluşur:
    • aspects[], her biri kuruluşun tek bir özelliğinin derecelendirmesini sağlayan PlaceAspectRating nesnelerinin dizisini içerir. Dizideki ilk nesne birincil yön olarak kabul edilir. Her bir PlaceAspectRating şu şekilde tanımlanır:
      • type Değerlendirilen yönün adı. Şu türler desteklenir: appeal, atmosphere, decor, facilities, food, overall, quality ve service.
      • rating kullanıcının bu belirli yönle ilgili 0 ile 3 arasındaki puanı.
    • author_name Yorumu gönderen kullanıcının adı. Anonim yorumlar "Bir Google kullanıcısı"na atfedilir. Bir dil parametresi ayarlanmışsa "Bir Google kullanıcısı" ifadesi yerelleştirilmiş bir dize döndürür.
    • author_url Kullanıcının Google+ profilinin URL'si (varsa).
    • language Kullanıcının yorumunda kullanılan dili belirten bir IETF dil kodu. Bu alan yalnızca ana dil etiketini içerir ve ülke veya bölgeyi belirten ikincil etiketi içermez. Örneğin, tüm İngilizce yorumlar "en-AU" veya "en-UK" olarak değil, "en" olarak etiketlenir.
    • rating kullanıcının bu yer için verdiği genel puan. Bu, 1 ile 5 arasında değişen bir tam sayıdır.
    • text kullanıcının yorumu. Google Yerler ile bir konumu incelerken metin yorumları isteğe bağlı olarak kabul edilir. Bu nedenle, bu alan boş olabilir.
  • types Bu yerin türlerinin dizisi (ör. ["political", "locality"] veya ["restaurant", "lodging"]). Bu dizi birden fazla değer içerebilir veya boş olabilir. Yeni değerler ön bildirimde bulunulmaksızın kullanıma sunulabilir. Desteklenen türlerin listesine bakın.
  • url: Bu yerin resmi Google sayfasının URL'si. Bu, yerle ilgili mevcut en iyi bilgileri içeren ve Google'a ait olan sayfadır. Uygulamalar, yerle ilgili ayrıntılı sonuçları kullanıcıya gösteren tüm ekranlarda bu sayfaya bağlantı vermelidir veya bu sayfayı yerleştirmelidir.
  • vicinity: Yerle ilgili basitleştirilmiş adres. Sokak adı, sokak numarası ve yerleşim yeri bilgilerini içerir ancak il/eyalet, posta kodu veya ülke bilgilerini içermez. Örneğin, Google'ın Avustralya, Sidney'deki ofisinin vicinity değeri 5/48 Pirrama Road, Pyrmont'dir. vicinity özelliği yalnızca yakındaki arama için döndürülür.
  • website, bu yerin yetkili web sitesini (ör. bir işletmenin ana sayfası) listeler.

Not: Çok boyutlu puanlar tüm konumlar için kullanılamayabilir. Yorum sayısı çok azsa ayrıntılar yanıtında 0,0 ile 5,0 arasında eski bir puan (varsa) veya hiç puan yer almaz.

Yer kimliğiyle bir yere referans verme

Yer kimliği, Google Haritası'ndaki bir yerin benzersiz referansıdır. İşletmeler, önemli noktalar, parklar ve kavşaklar dahil olmak üzere çoğu konum için yer kimlikleri kullanılabilir.

Uygulamanızda yer kimliği kullanmak için önce kimliği aramanız gerekir. Bu kimlik, Yer Arama veya Ayrıntılar isteğinin PlaceResult bölümünde bulunur. Daha sonra bu yer kimliğini kullanarak Yer Ayrıntıları'nı arayabilirsiniz.

Yer kimlikleri, Google Haritalar Platformu Hizmet Şartları'nın Bölüm 3.2.3(b)'sinde belirtilen önbelleğe alma kısıtlamalarından muaftır. Bu nedenle, yer kimliği değerlerini daha sonra kullanmak üzere saklayabilirsiniz. Yer kimliklerini depolarken yararlanabileceğiniz en iyi uygulamalar için yer kimliğine genel bakış başlıklı makaleyi 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ı

Sitenize yüksek kaliteli fotoğraf içerikleri eklemek için Yer Fotoğrafı özelliğini kullanın. Fotoğraf hizmeti, Yerler ve Google+ Yerel veritabanında depolanan milyonlarca fotoğrafa erişmenizi sağlar. Yer Ayrıntıları isteği kullanarak yer bilgisi 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 de uygun olduğunda her yer için tek bir fotoğraf referansı döndürür. Fotoğraf hizmetini kullanarak referans verilen fotoğraflara erişebilir ve resmi uygulamanız için en uygun boyuta yeniden boyutlandırabilirsiniz.

PlacePhoto nesneleri dizisi, PlacesService öğesine karşı yapılan tüm getDetails(), textSearch() veya nearbySearch() istekleri için PlaceResult nesnesinin bir parçası olarak döndürülür.

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

  • Yakınlardaki 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. Resmin maksimum yüksekliğini ve genişliğini belirtmek için PhotoOptions nesnesini kullanın. 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 olanına göre yeniden boyutlandırır.

Aşağıdaki kod snippet'i bir yer nesnesini kabul eder ve fotoğraf varsa haritaya 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ı tarafından gönderilen fotoğraflar da dahil olmak üzere çeşitli konumlardan alınır. Çoğu durumda bu fotoğraflar, atıfta bulunulmadan kullanılabilir veya gerekli atıf, resmin bir parçası olarak eklenir. 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 atıf eklemeniz gerekir.