Yerler Kitaplığı

Platform seçin: Android iOS JavaScript Web Hizmeti

Genel bakış

Yerler Kitaplığı ve Maps JavaScript API'deki işlevler, uygulamanızın, haritanın sınırları veya sabit bir noktanın etrafı gibi tanımlı bir alanda bulunan yerleri (bu API'de kuruluş, coğrafi konum veya önemli yer olarak tanımlanır) aramasını sağlar.

Places API, uygulamalarınıza Google Haritalar arama alanının önceden yazma davranışını vermek için kullanabileceğiniz bir otomatik tamamlama özelliği sunar. Kullanıcı bir adres yazmaya başladığında, kalan kısmı otomatik tamamlamayla tamamlar. Daha fazla bilgi edinmek için otomatik tamamlama dokümanlarına göz atın.

Başlarken

Maps JavaScript API veya JavaScript hakkında bilgi sahibi değilseniz başlamadan önce JavaScript'i incelemenizi ve API Anahtarı Almanızı öneririz.

API'leri etkinleştir

Maps JavaScript API'de Yerler kitaplığını kullanmadan önce, ilk olarak Maps JavaScript API için ayarladığınız projede, Google Cloud Console'da Places API'nin etkinleştirildiğinden emin olun.

Etkin API'ler listenizi 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 Places API varsa zaten etkinleştirilmiştir. API listede yoksa etkinleştirin:
    1. Kitaplık sekmesini görüntülemek için sayfanın üst kısmında 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'yi arayın ve 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 Maps API ö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&loading=async&libraries=places&callback=initMap">
</script>

Daha fazla bilgi için Kitaplıklara Genel Bakış konusuna bakın.

API anahtarının API kısıtlamaları listesine Places API 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ırlandırır. API anahtarıyla ilişkili bir API veya SDK'ya yapılan istekler işlenir. API anahtarıyla ilişkili olmayan API veya SDK'lara yapılan istekler başarısız olur. Bir API anahtarının Yerler Kitaplığı ile kullanımını kısıtlamak için Maps JavaScript API:
  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 hale getirmek 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ıp hem Haritalar JavaScript API'si hem de Places API'yi seçin.
        (Listede olmayan API'leri enable gerekir.)
  6. KAYDET'i tıklayın.

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

Kotalar

Yerler Kitaplığı, Places API'nin Kullanım Sınırları belgelerinde açıklandığı gibi Places API ile bir kullanım kotası paylaşır.

Politikalar

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

Yer Aramaları

Rehber hizmetiyle aşağıdaki türde aramalar yapabilirsiniz:

Döndürülen bilgiler arasında restoranlar, mağazalar ve ofisler gibi kuruluşlar ve adresleri, kasaba veya şehir gibi politik alanları ve diğer önemli yerleri belirten "coğrafi kod" sonuçları yer alabilir.

Yer Bulma istekleri

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

Sorgudan Yer Bulma

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

  • query (zorunlu) Arama yapılacak metin dizesi, örneğin: "restoran" veya "123. Cadde". 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. Places API, bu dizeye göre aday 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 verilerinin türlerini belirten bir veya daha fazla alan.
  • locationBias (isteğe bağlı) Aranacak alanı tanımlayan koordinatlar. Aşağıdakilerden biri olabilir:

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

Aşağıdaki örnekte findPlaceFromQuery() için yapılan, "Avustralya Modern Sanat Müzesi"nin arandığı ve name ile geometry alanlarının yer aldığı bir çağrı gösterilmektedir.

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 Bulma

Telefon Numarasından Yer Bulma bir telefon numarası alır ve yer döndürür. Telefon Numarasından Yer Bulma isteği oluşturmak için PlacesService findPlaceFromPhoneNumber() yöntemini çağırın. Bu yöntem aşağıdaki parametreleri alır:

  • 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:

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

Alanlar (Yer Bulma 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ılmıştır: Temel, Kişi ve Atmosfer. Temel alanlar, taban ücretle faturalandırılır ve ek ücret ödemez. Temas ve Atmosfer alanları daha yüksek ücretle faturalandırılır. Daha fazla bilgi için fiyatlandırma tablosuna bakın. Alanın istenmiş olup olmamasından bağımsız olarak, ilişkilendirmeler (html_attributions) her zaman her aramada döndürülür.

Temel

Temel kategorisinde aşağıdaki alanlar yer alır:
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 Kitaplığı, Maps JavaScript API'de kullanımdan kaldırılmıştır. opening_hours sonuçlarını almak için Yer Ayrıntısı isteği kullanın).

Atmosfer

Atmosfer kategorisi şu alanları içerir: price_level, rating, user_ratings_total

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

Konum ağırlıklandırmasını ayarlama (Yer Bulma yöntemleri)

Yer Bulma işlevinin belirli bir bölgedeki sonuçlara öncelik vermesi için locationBias parametresini kullanın. locationBias öğesini aşağıdaki şekillerde ayarlayabilirsiniz:

Belirli bir alanla ilgili yanlılık sonuçları:

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.

Arama yapılacak yarıçapı (metre cinsinden), belirli bir alana ortalanmış olarak tanımlayın:

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

Yakındaki Arama İstekleri

Yakındaki Arama, belirli bir bölgedeki yerleri anahtar kelimeye veya türe göre aramanıza olanak tanır. Yakındaki Arama her zaman bir konum içermelidir. Bu konum, şu iki yöntemden biriyle belirtilebilir:

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

Yakındaki Yerler araması, PlacesService nearbySearch() yöntemine yapılan bir çağrıyla başlatılır ve bu yöntem, bir dizi PlaceResult nesne döndürür. nearbySearch() yönteminin, sürüm 3.9 itibarıyla 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 isteği alır:

  • Aşağıdakilerden biri:
    • Dikdörtgen arama alanını tanımlayan bir google.maps.LatLngBounds nesnesi olması gereken bounds veya
    • bir location ve bir radius; ilki google.maps.LatLng nesnesi, ikincisi ise çemberin yarıçapını metre cinsinden temsil eden basit bir tam sayı alır. İzin verilen maksimum yarıçap 50.000 metredir. rankBy, DISTANCE olarak ayarlandığında location belirtmeniz gerekir ancak radius veya bounds belirtemezsiniz.
  • 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 mevcut tüm alanlarla eşleştirilecek bir terim.
  • minPriceLevel ve maxPriceLevel (isteğe bağlı): Sonuçları yalnızca belirtilen aralıktaki yerlerle kısıtlar. Geçerli değerler, 0 (en uygun fiyatlı) ile 4 (en pahalı) aralığında (bu değerler dahil) 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ı) — Yerler hizmetinin yalnızca sorgu gönderildiği sırada açık olan yerleri döndürmesi gerektiğini belirten boole değeridir. Bu parametreyi sorgunuza eklerseniz Google Rehber veritabanında çalışma saatlerini belirtmeyen yerler döndürülmez. openNow yönergesini false değerine ayarlamanın bir etkisi olmaz.
  • 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ı önemlerine göre sıralar. Sıralamada, belirlenen yarıçap içindeki belirgin yerler, eşleşen ancak daha az belirgin olan yerlere göre önceliklidir. Önem; bir yerin Google dizinindeki sıralamasından, dünya genelindeki 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 değerine uzaklığına göre artan düzende sıralar (gerekli). RankBy.DISTANCE değerini belirtirseniz özel bir bounds ve/veya radius belirtemeyeceğinizi unutmayın. RankBy.DISTANCE özelliğini belirttiğinizde, keyword, name veya type değerlerinden biri veya daha fazlası gerekir.
  • 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şin ardından gelen tüm türler yoksayılır). Desteklenen türlerin listesine bakın.

Sonuç nesnesini ve google.maps.places.PlacesServiceStatus yanıtını işlemek için nearbySearch() öğesine bir geri çağırma yöntemi de 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 Rehber Metin Arama hizmeti, bir dizeye bağlı olarak bir dizi yer hakkında bilgi döndüren bir web hizmetidir. Örneğin, "İstanbul'da pizza" veya "Taksim yakınındaki ayakkabı mağazaları". Hizmet, metin dizesiyle eşleşen yerlerin bir listesiyle ve ayarlanan konuma bağlı olarak yanıt verir. Arama yanıtında yerlerin listesi yer alır. Yanıttaki herhangi bir yer hakkında daha fazla bilgi için Yer Ayrıntısı isteği gönderebilirsiniz.

Metin Aramaları, PlacesService textSearch() yöntemine çağrıyla 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 isteği alır:

  • query (zorunlu) Arama yapılacak metin dizesi. Örneğin, "restoran" veya "123. Cadde". 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 göre aday eşleşmeleri döndürür ve sonuçları algılanan alaka düzeylerine göre sıralar. Arama isteğinde type parametresi de kullanılırsa bu parametre isteğe bağlı hale gelir.
  • İsteğe bağlı olarak:
    • openNow — Yerler hizmetinin, sorgu gönderildiği sırada yalnızca iş açık olan yerleri döndürmesi gerektiğini belirten boole değeridir. Bu parametreyi sorgunuza eklerseniz Google Rehber veritabanında çalışma saatlerini belirtmeyen yerler döndürülmez. openNow yönergesini false değerine ayarlamanın bir etkisi olmaz.
    • minPriceLevel ve maxPriceLevel: Sonuçları yalnızca belirtilen fiyat seviyesi içindeki yerlerle kısıtlar. Geçerli değerler, 0 (en uygun fiyatlı) ile 4 (en pahalı) aralığındadır (bu değerler dahil).
    • Aşağıdakilerden biri:
      • bounds — İçinde arama yapılacak dikdörtgeni tanımlayan bir google.maps.LatLngBounds nesnesi veya
      • location ve radiuslocation ve radius parametresi ileterek sonuçları belirli bir daireye taşıyabilirsiniz. Bu işlem, Rehber hizmetine, söz konusu çevre içindeki sonuçları göstermeyi tercih etmesi talimatını verir. 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 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şin ardından gelen 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() öğesine 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çerir.
  • OVER_QUERY_LIMIT: Web sayfası istek kotasını aştı.
  • REQUEST_DENIED: Web sayfasının PlacesService'i kullanmasına izin verilmez.
  • UNKNOWN_ERROR: Sunucu hatası nedeniyle PlacesService isteği 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 nesne dizisi döndürür.

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

  • business_status, yerin (işletme) çalışma durumunu belirtir. 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 tarafından okunabilen adresini içeren bir dizedir. formatted_address özelliği yalnızca Metin Arama için döndürülür.

    Bu adres çoğu zaman posta adresine eşdeğerdir. Birleşik Krallık gibi bazı ülkelerin, lisanslama kısıtlamaları nedeniyle 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. Ö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 programlı olarak ayrıştırmayın. Bunun yerine, biçimlendirilmiş adres alanına ek olarak API yanıtının içerdiği bağımsız adres bileşenlerini kullanmanız gerekir.

  • geometry: Yerin geometrisiyle ilgili bilgiler. Buna aşağıdakiler dahildir:
    • location, yerin enlem ve boylamını sağlar.
    • viewport, bu yeri görüntülerken haritada tercih edilen görünümü tanımlar.
  • permanently_closed (kullanımdan kaldırıldı), yerin kalıcı olarak mı yoksa geçici olarak mı kapatıldığını belirten bir boole işaretidir (true değeri). permanently_closed değerini kullanmayın. Bunun yerine, işletmelerin operasyonel durumunu öğrenmek için business_status aracını kullanın.
  • plus_code (bkz. Açık Konum Kodu ve artı kodları), bir alanı temsil eden kodlanmış konum referansıdır. Enlem ve boylam koordinatlarından türetilen, bir derecenin 1/8.000'i 1/8.000'i (ekvatorda yaklaşık 14 m x 14 m) veya daha küçük bir alanı temsil eder. Artı kodları, bulunmadığı yerlerde (bina numaralandırılmamış veya sokakların adlandırılmadığı) açık adreslerin yerine kullanılabilir.

    Artı kodu, global kod ve birleşik kod olarak biçimlendirilir:

    • global_code, 4 karakterli bir alan kodu ve 6 karakter veya daha uzun bir yerel koddur (849VCWC8+R9).
    • compound_code, konum bilgisi (CWC8+R9, Mountain View, CA, ABD) olan, 6 karakter veya daha uzun bir yerel koddur. Bu içeriği programlı bir şekilde ayrıştırmayın.
    Genellikle hem global kod hem de bileşik kod döndürülür. Ancak, sonuç uzak bir konumdaysa (ör. okyanus veya çöl) yalnızca global kod döndürülebilir.
  • html_attributions: Arama sonuçlarını görüntülerken görüntülemeniz gereken ilişkilendirmeler dizisi. Dizideki her giriş, tek bir ilişkilendirmenin 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 aynı ilişkilendirme listelerini içerir.
  • icon, 71 x 71 piksel boyutundaki renkli bir PNG simgesinin URL'sini döndürür.
  • icon_mask_base_uri, .svg veya .png uzantısı hariç, renkli olmayan bir simge için temel URL'yi döndürür.
  • icon_background_color, yerin 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 şu 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 kullanın).
  • place_id, bir yeri benzersiz şekilde tanımlayan metin biçimli bir tanımlayıcıdır. Yer hakkında bilgi almak için bu tanımlayıcıyı Yer Ayrıntıları isteğinde iletin. Yer kimliğiyle bir yeri referans gösterme 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 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 bildirimde bulunulmaksızın sunulabilir. Desteklenen türlerin listesine bakın.
  • vicinity: Yerin il/eyalet, posta kodu veya ülke bilgisi olmadan sokak adı, sokak numarası ve şehir bilgisini içeren basitleştirilmiş adresi. Örneğin, Google'ın Sidney, Avustralya ofisinin vicinity değeri 5/48 Pirrama Road, Pyrmont şeklindedir.

Ek Sonuçlara Erişim

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

  • hasNextPage, daha fazla sonuç olup olmadığını belirten bir boole özelliğini belirtir. true ek bir sonuç sayfası olduğunda.
  • Sonraki sonuç grubunu döndürecek bir işlev nextPage(). Bir arama yürüttükten sonra, sonraki sonuç sayfasının kullanılabilir olması için iki saniye beklemeniz gerekir.

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

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

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

Örneği Deneyin

Yer Ayrıntıları

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

Yer Ayrıntısı İstekleri

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

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

Bu yöntem, istenen yerin placeId değerini ve döndürülecek Yerler verisi türlerini belirten alanları içeren bir istek alır. Yer kimliğiyle bir yeri referans gösterme hakkında daha fazla bilgi edinin.

Ayrıca, google.maps.places.PlaceResult nesnesinin yanı sıra google.maps.places.PlacesServiceStatus yanıtında geçirilen durum kodunu işlemesi gereken bir geri çağırma yöntemi de kullanı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 (alan adları) dizisi 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ısı sonuçlarına karşılık gelir ve üç faturalandırma kategorisine ayrılmıştır: Temel, Kişi ve Atmosfer. Temel alanlar taban ücretle faturalandırılır ve ek ücret ödemez. İletişim ve Atmosfer alanları daha yüksek ücretle faturalandırılır. Daha fazla bilgi için fiyatlandırma tablosuna bakın. İstek yapılmasa da ilişkilendirmeler (html_attributions) her aramada döndürülür.

Temel

Temel kategorisi aşağıdaki alanları içerir:
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, url, utc_offset, {2 API'yi kaldır utc_offset_minutesvicinity

İletişim

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

Atmosfer

Atmosfer kategorisi şu 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ısı Yanıtları

Durum Kodları

PlacesServiceStatus yanıt nesnesi, isteğin durumunu içerir ve Yer Ayrıntısı 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ıt geçerli bir sonuç içerir.
  • 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'i kullanmasına izin verilmez.
  • UNKNOWN_ERROR: Sunucu hatası nedeniyle PlacesService isteği işlenemedi. Tekrar denerseniz istek başarılı olabilir.
  • ZERO_RESULTS: Bu istek için sonuç bulunamadı.

Yer Ayrıntısı 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 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, coğrafi kodlayıcı tarafından döndürülen adres bileşeninin tam metin açıklaması veya adıdır.
    • short_name, varsa adres bileşeni için kısaltılmış metin biçiminde bir addır. Örneğin, Alaska eyaletinin adres bileşeninde 2 harfli posta kısaltması kullanılarak long_name "Alaska" ve short_name "AK" kullanılabilir.

    address_components[] dizisiyle ilgili aşağıdaki gerçeklere dikkat edin:

    • Adres bileşenleri dizisi, formatted_address öğesinden daha fazla bileşen içerebilir.
    • Dizi, formatted_address içinde yer alanlar dışında, bir adres içeren tüm siyasi varlıkları içermez. Belirli bir adres içeren tüm siyasi varlıkları geri almak için ters coğrafi kodlama kullanmanız ve adresin enlem/boylamını isteğe parametre olarak iletmeniz gerekir.
    • İstekler arasında yanıt biçiminin 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. Daha sonraki bir yanıtta belirli bir bileşen eksik olabilir.
  • business_status, yerin (işletme) çalışma durumunu belirtir. 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 tarafından okunabilen adresi.

    Bu adres çoğu zaman posta adresine eşdeğerdir. Birleşik Krallık gibi bazı ülkelerin, lisanslama kısıtlamaları nedeniyle 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. Ö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 programlı olarak ayrıştırmayın. Bunun yerine, biçimlendirilmiş adres alanına ek olarak API yanıtının içerdiği bağımsız adres bileşenlerini kullanmanız gerekir.

  • formatted_phone_number: Yerin, numaranın bölgesel kurallarına göre biçimlendirilmiş telefon numarası.
  • geometry: Yerin geometrisiyle ilgili bilgiler. Buna aşağıdakiler dahildir:
    • location, yerin enlem ve boylamını sağlar.
    • viewport, bu yeri görüntülerken haritada tercih edilen görünümü tanımlar.
  • permanently_closed (kullanımdan kaldırıldı), yerin kalıcı olarak mı yoksa geçici olarak mı kapatıldığını belirten bir boole işaretidir (true değeri). permanently_closed değerini kullanmayın. Bunun yerine, işletmelerin operasyonel durumunu öğrenmek için business_status aracını kullanın.
  • plus_code (bkz. Açık Konum Kodu ve artı kodları), bir alanı temsil eden kodlanmış konum referansıdır. Enlem ve boylam koordinatlarından türetilen, bir derecenin 1/8.000'i 1/8.000'i (ekvatorda yaklaşık 14 m x 14 m) veya daha küçük bir alanı temsil eder. Artı kodları, bulunmadığı yerlerde (bina numaralandırılmamış veya sokakların adlandırılmadığı) açık adreslerin yerine kullanılabilir.

    Artı kodu, global kod ve birleşik kod olarak biçimlendirilir:

    • global_code, 4 karakterli bir alan kodu ve 6 karakter veya daha uzun bir yerel koddur (849VCWC8+R9).
    • compound_code, konum bilgisi (CWC8+R9, Mountain View, CA, ABD) olan, 6 karakter veya daha uzun bir yerel koddur. Bu içeriği programlı bir şekilde ayrıştırmayın.
    Genellikle hem global kod hem de bileşik kod döndürülür. Ancak, sonuç uzak bir konumdaysa (ör. okyanus veya çöl) yalnızca global kod döndürülebilir.
  • html_attributions: Bu yer sonucu için gösterilecek atıf metni.
  • icon: Bu yerin türünü göstermek için kullanılabilecek bir resim kaynağının URL'si.
  • international_phone_number, yerin telefon numarasını uluslararası standartta içerir. Uluslararası biçim, ülke kodunu içerir ve önünde artı (+) işareti bulunur. Örneğin, Google'ın Avustralya'daki Sidney ofisi international_phone_number, +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ı dakika sayısını içerir. Örneğin, Avustralya'da Sidney'de yaz saati uygulaması sırasında bu süre 660 (UTC'den itibaren 11 saat) ve Kaliforniya'da yaz saati dışındaki yerler için -480 (UTC'den itibaren -8 saat) olur.
  • opening_hours aşağıdaki bilgileri içerir:
    • open_now (Yerler Kitaplığı, Maps JavaScript API'de kullanımdan kaldırıldı. Bunun yerine opening_hours.isOpen() işlevini kullanın. Yer Ayrıntıları ile isOpen özelliğinin nasıl kullanılacağını öğrenmek için bu videoyu izleyin.) yerin şu anda 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 açılış dönemleri dizisidir. 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ı olmalıdır. Örneğin, 2, Salı anlamına gelir.
        • time, 24 saat ssdd biçiminde günün saatini içerebilir (değerler 0000-2359 aralığındadır). time, söz konusu yerin saat diliminde bildirilir.
      • close, yerin ne zaman kapandığını açıklayan bir çift gün ve saat nesnesi içerebilir. Not: Bir yer her zaman açık ise yanıtta close bölümü yer almaz. Uygulamalar her zaman açık olacak şekilde, day değerini içeren 0 ve time değerini içeren ve close değerini içermeyen bir open dönemi olarak temsil edilebilir.
    • weekday_text, haftanın her günü için biçimlendirilmiş açılış 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 söz konusu dile uygun şekilde biçimlendirip yerelleştirir. Bu dizideki öğelerin sıralaması language parametresine bağlıdır. Bazı diller hafta 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ı belirten bir boole işaretidir (true değeri). permanently_closed değerini kullanmayın. Bunun yerine, işletmelerin operasyonel durumunu öğrenmek için business_status aracını kullanın.
  • photos[]: PlacePhoto nesneden oluşan dizi. getUrl() yöntemiyle fotoğraf elde etmek için bir PlacePhoto kullanılabilir veya 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 atıf metni.
  • place_id: Bir yeri benzersiz şekilde tanımlayan ve Yer Ayrıntıları isteği aracılığıyla yer hakkında bilgi almak için kullanılabilecek metin biçimli bir tanımlayıcı. Yer kimliğiyle bir yeri referans gösterme hakkında daha fazla bilgi edinin.
  • rating: Toplu kullanıcı yorumlarına göre yerin 0, 0 ile 5, 0 arasındaki puanı.
  • En fazla beş yorumdan oluşan bir dizi reviews. Her inceleme birkaç bileşenden oluşur:
    • aspects[], her biri tesisin tek bir özelliğinin derecelendirmesini sağlayan PlaceAspectRating nesne dizisi içerir. Dizideki ilk nesne, birincil en boy olarak kabul edilir. Her bir PlaceAspectRating şu şekilde tanımlanır:
      • type Derecelendirilen özelliğin adı. Şu türler desteklenir: appeal, atmosphere, decor, facilities, food, overall, quality ve service.
      • rating: Kullanıcının bu yöndeki puanını 0 ile 3 arasında bir değere ayarlayın.
    • author_name Yorumu gönderen kullanıcının adı. Anonim yorumlar "Bir Google kullanıcısı" ile ilişkilendirilir. Bir dil parametresi ayarlanmışsa "Bir 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 kodudur. Bu alan yalnızca ana dil etiketini içerir, ülkeyi veya bölgeyi belirten ikincil etiketi içermez. Örneğin, tüm İngilizce yorumlar "en-AU" veya "en-UK" şeklinde değil, "en" olarak etiketlenir.
    • Kullanıcının bu yer için genel oyu rating. Bu, 1 ile 5 arasında bir tam sayıdır.
    • Kullanıcının yorumunu text. Google Rehber ile bir konum hakkında yorum yaparken, metin yorumları isteğe bağlı kabul edilir. Bu nedenle bu alan boş bırakılabilir.
  • 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 bildirimde bulunulmaksızın sunulabilir. Desteklenen türlerin listesine bakın.
  • url: Bu yere ait resmi Google sayfasının URL'si. Bu, yer hakkında mevcut en iyi bilgileri içeren Google'ın sahibi olduğu sayfadır. Uygulamalar, yerle ilgili ayrıntılı sonuçları kullanıcıya gösteren herhangi bir ekrana bu sayfaya bağlantı vermeli veya bu sayfayı yerleştirmelidir.
  • vicinity: Yerin il/eyalet, posta kodu veya ülke bilgisi olmadan sokak adı, sokak numarası ve şehir bilgisini içeren basitleştirilmiş adresi. Örneğin, Google'ın Sidney, Avustralya ofisinin vicinity değeri 5/48 Pirrama Road, Pyrmont şeklindedir. 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 konumlarda kullanılamayabilir. Çok az yorum varsa ayrıntılar yanıtı, 0,0-5,0 ölçeğinde eski bir puan içerir (varsa) veya hiç puan içermez.

Yere Genel Bakış bileşenini kullanma

Not: Bu örnekte açık kaynak kitaplık kullanılmaktadır. Kitaplıkla ilgili destek ve geri bildirim için BENİOKU sayfasına göz atın.

Web bileşenlerini deneyin. Görsel bir temsille yer ayrıntılarını almak için Yere Genel Bakış web bileşenini kullanın.

Yere Genel Bakış bileşeninin kullanıcı tarafından girilen boyut alanına göre gösterilen x-küçük, küçük, orta, büyük ve x-büyük boyutlu varyasyonlarını gösteren resim.
Şekil 1: Beş farklı beden varyasyonuyla yer ayrıntılarına ilişkin bilgiler

Bir Yere Yer Kimliğiyle Referans Verme

Yer kimliği, Google Haritasındaki bir yere ilişkin benzersiz bir referanstır. Yer kimlikleri işletmeler, önemli noktalar, parklar ve kavşaklar dahil çoğu konum için kullanılabilir.

Uygulamanızda yer kimliği kullanmak için öncelikle, Yer Arama veya Ayrıntılar isteğinin PlaceResult bölümünde bulunan kimliği aramanız gerekir. 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 depolamayla ilgili 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çeriği eklemenize olanak tanır. Fotoğraf hizmeti, Rehber ve Google+ Yerel veritabanında depolanan milyonlarca fotoğrafa erişmenizi sağlar. Yer Ayrıntısı isteğini kullanarak yer bilgileri aldığınızda, ilgili fotoğraflı içerik için fotoğraf referansları döndürülür. Yakındaki Arama ve Metin Arama istekleri de alakalı 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 optimum boyuta uyacak şekilde yeniden boyutlandırabilirsiniz.

PlacesService nesnesine karşı yapılan herhangi bir getDetails(), textSearch() veya nearbySearch() isteği için 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.

  • Yakındaki Arama veya Metin Araması 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şkilendirilmiş resmin URL'sini isteyebilirsiniz. PhotoOptions nesnesi, resmin istediğiniz maksimum yüksekliğini ve genişliğini belirtmenizi sağlar. Hem maxHeight hem de maxWidth için değer belirtirseniz fotoğraf hizmeti, orijinal en boy oranını korurken resmi iki boyuttan küçük olacak şekilde yeniden boyutlandırır.

Aşağıdaki kod snippet'i 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 versiyonuyla 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 katkıda bulunduğu fotoğraflar da dahil olmak üzere çeşitli konumlardan alınır. Çoğu durumda, bu fotoğraflar atıf verilmeden kullanılabilir veya gerekli atıf resmin bir parçası olarak eklenir. Bununla birlikte, 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 eklemeniz gerekir.