Yerler Kitaplığı

Genel Bakış

Yerler Kitaplığı, Maps JavaScript API'deki işlevler, uygulamanızın (bu API'de tesisler, coğrafi konumlar ve coğrafi konum yerler veya önemli yerler) hariç, sabit bir noktanın çevresinde olduğu gibi bilgiler sağlayabilirsiniz.

Places API, kullanabileceğiniz bir otomatik tamamlama özelliği sunar. ve uygulamalarınıza Google Haritalar'daki arama yapma ilkesi davranışını sağlamak için arama alanına girebilirsiniz. Kullanıcı bir adres yazmaya başladığında otomatik tamamlama, gerisini doldurun. Daha fazla bilgi için otomatik tamamlama dokümanlarına göz atın.

Başlarken

Maps JavaScript API veya JavaScript'i gözden geçirmenizi ve Önce API anahtarı alın ele alacağız.

API'leri etkinleştir

Maps JavaScript API'de Yerler kitaplığını kullanmadan önce Rehber API'sinin, Google Cloud Console'da projesi için oluşturduğunuz bir testtir.

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

  1. Şuraya gidin: Google Cloud Console.
  2. Proje seçin düğmesini tıklayın, ardından oluşturduğunuz projeyi seçin JavaScript API'sini açın ve 'ı tıklayın.
  3. Kontrol Paneli'ndeki API listesinde, Yerler API'si.
  4. Listede Places API'yi görürseniz zaten etkinleştirilmiştir. API listelenmiyor ise, etkinleştirin:
    1. Sayfanın üst tarafında API'LERİ VE HİZMETLERİ ETKİNLEŞTİR'i seçerek Kitaplık sekmesine gidin. Alternatif olarak sol taraftaki menüden Kitaplık'ı seçin.
    2. Places API'yi arayın ve sonuç listesi.
    3. ETKİNLEŞTİR'i seçin. Süreç tamamlandığında Places API, Kontrol paneli.

Kitaplık yükleniyor

Rehber hizmeti, ana kütüphaneden ayrı ve bağımsız bir kitaplıktır. Maps JavaScript API kodu. Sunulan işlevleri kullanmak için bu kitaplıkta, önce libraries parametresi için:

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

Bkz. Kitaplıklara Genel Bakış başlıklı makaleye göz atın.

API anahtarının API kısıtlamaları listesine Places API ekleme

Anahtarlarınıza API kısıtlamaları uygulamak, API anahtarı kullanımını bir veya daha fazla API veya SDK kullanabilirsiniz. API anahtarıyla ilişkilendirilmiş bir API veya SDK'ya yapılan istekler: emin olun. API anahtarıyla ilişkili olmayan API veya SDK'lara yapılan istekler: başarısız olur. Bir API anahtarını Yerler Kitaplığı ile kullanmak üzere 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ı.
  3. Menü düğmesini tıklayın Google Haritalar Platformu > Kimlik bilgileri.
  4. Kimlik bilgileri sayfasında API'nin adını tıklayın anahtarı seçin.
  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 hem Haritalar JavaScript API'yi hem de Places API'yi seçin.
        . (API'lerden biri listede yoksa onu etkinleştirmeniz gerekir.)
  6. KAYDET'i tıklayın.

Kullanım sınırları ve politikalar

Kotalar

Yerler Kitaplığı, Kullanım Sınırları dokümanlarında açıklandığı şekilde Places API'si Yerler API'si.

Politikalar

Yerler Kitaplığı'nın kullanımı için Maps JavaScript API, tanımlanan politikalar hakkında daha fazla bilgi edinin.

Yer Aramaları

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

  • Sorgudan Yer Bulma metin sorgusuna (örneğin, isim veya adres gibi bir yerin adı veya adresi) yer alır).
  • Telefondan Yer Bulma Sayı, telefon numarasına göre bir yer döndürür.
  • Yakında Arama kullanıcının konumuna göre yakındaki yerlerin listesini döndürür.
  • Metin Arama bir arama dizesine göre yakındaki yerlerin listesini döndürür, ör. "Pizza".
  • Yer Ayrıntısı istekleri belirli bir yer hakkında daha ayrıntılı bilgi verebilir, örneğin kullanıcı yorumları.

Döndürülen bilgiler, restoranlar, mağazalar ve ofisler ile 'coğrafi kod' elde edilir. adresleri, ilçeler ve şehirler gibi politik alanları ve noktaları anlatacağım.

Yer Bulma istekleri

Yer Bulma isteği, bir yeri metin sorgusu veya telefon numarası. İ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ş, İşletme adı veya adresi gibi herhangi bir Yer verisi olmamalıdır. Bir Sorgu isteğinden Yer Bulma, PlacesService öğesini çağır findPlaceFromQuery() yöntemini çağırın:

  • query (zorunlu) Aranacak metin dizesi, örnek: "restoran" veya "Ana Cadde No: 123". Bu bir yer adı olmalıdır veya kuruluş kategorisi olabilir. Diğer giriş türleri, hatası verir 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ı sıralar bir kitle oluşturabilirsiniz.
  • fields (zorunlu) Bir veya daha fazla alan döndürülecek Yer verilerinin türlerini belirtme.
  • locationBias (isteğe bağlı) Arama yapılacak alanı belirleyen koordinatlar. Bu, müşteri görüşlerinin takip etmek için:

Ayrıca, findPlaceFromQuery() işlevine bir geri çağırma yöntemi iletmeniz, ve google.maps.places.PlacesServiceStatus öğesini işlemek için tıklayın.

Aşağıdaki örnekte bir findPlaceFromQuery() çağrısı gösterilmektedir. “Avustralya Modern Sanat Müzesi”ni arıyor ve name ve geometry alanları için geçerlidir.

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ıp bir yeri döndürür. Alıcı: Telefon Numarasından Yer Bulma isteğinde bulunmak için PlacesService adlı kişinin findPlaceFromPhoneNumber() yöntemini çağırın:

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

Ayrıca, findPlaceFromPhoneNumber() işlevine bir geri çağırma yöntemi iletmeniz, ve google.maps.places.PlacesServiceStatus öğesini işlemek için tıklayın.

Alanlar (Yer Bulma yöntemleri)

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

Alanlar, Yer Arama sonuçlarına karşılık gelir ve bölünür. üç faturalandırma kategorisine ayrılır: Temel, Kişi ve Atmosfer. Temel alanlar faturalandırılır ve ek ücret alınmaz. İletişim ve Atmosfer alanları daha yüksek ücretle faturalandırılır. Fiyatlandırma sayfasını inceleyin konulu videomuzu izleyin. İlişkilendirmeler (html_attributions) her zaman her çağrıda döndürülür. Alanın en iyi şekilde çalışıp çalışmadığını istendi.

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
(kullanımdan kaldırıldı Maps JavaScript API'de bulabilirsiniz. Şurayı görmek için Yer Ayrıntısı isteğini kullanın: opening_hours sonuç).

Atmosfer

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

findPlaceFromQuery() ve findPlaceFromPhoneNumber() yöntemin her biri aynı ve ilgili yanıtlarda aynı alanları döndürebilir.

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

Yer Bulma tercih sonuçları elde etmek için locationBias parametresini kullanın göz atmanızı öneririm. locationBias ayarlarını şuralarda yapabilirsiniz: yöntemler:

Belirli bir alan için 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 değeri de kullanabilirsiniz.

Belirli bir alanı merkez alarak arama yapmak için bir yarıçap (metre cinsinden) tanımlayın:

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

Yakındaki Arama İstekleri

Yakındaki Arama özelliği ile belirli bir alandaki yerleri veya türe göre değişiyor. Yakındaki Arama her zaman, şunları yapabilecek bir konum içermelidir: iki yöntemden biriyle belirtilmelidir:

  • LatLngBounds.
  • location işlevinin kombinasyonu olarak tanımlanan dairesel bir alan özellik — dairenin merkezini LatLng nesne ve metre cinsinden ölçülen bir yarıçap.

Yakındaki Yerler araması, PlacesService adlı kullanıcının nearbySearch() yöntemi. Bu yöntem şu diziyi döndür: PlaceResult nesne algılandı. nearbySearch() yöntemi, sürüm 3.9 itibarıyla search() yönteminin yerini almaktadır.

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

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

  • Şunlardan birini yapın:
    • bounds değeri geçerli olmalıdır. Dikdörtgeni tanımlayan google.maps.LatLngBounds nesnesi alanı seçin. Sınırlar için desteklenen maksimum köşegen mesafe yaklaşık 100.000 metrelik bir alanı kapsayabilir.
    • location ve radius; ilk başta bir google.maps.LatLng nesne, ikincisi ise basit bir Dairenin yarıçapını metre cinsinden temsil eden tam sayı. Maksimum izin verilen yarıçap 50.000 metredir. rankBy DISTANCE olarak ayarlandı, bir location ancak bir radius belirtemezsiniz veya bounds.
  • keyword (isteğe bağlı) — Eşleştirilecek bir terim dahil ancak bunlarla sınırlı olmamak üzere, tüm kullanılabilir alanlarda yanı sıra müşteri yorumları ve diğer üçüncü taraf içerikleri de dahil edilir.
  • minPriceLevel maxPriceLevel (isteğe bağlı): Sonuçları yalnızca şu konumdaki yerlerle sınırlar: belirtilen aralık. Geçerli değerler aralığı: 0 (en uygun fiyatlı) - 4 (en pahalı) arasında.
  • name Desteği sonlandırıldı. keyword yönergesine eşdeğer. Değerler bu alandaki değerler, keyword alanındaki değerlerle birleştirilir. ve aynı arama dizesinin parçası olarak geçirilir.
  • openNow (isteğe bağlı): Boole değeri, Rehber hizmetinin yalnızca sorgu gönderildiğinde açık olan işletmelerdir. Bunu gerçekleştirmeyen yerler Google Rehber veritabanındaki çalışma saatlerini belirtme bu parametreyi sorgunuza dahil ederseniz döndürülür. Ayar openNow ile false işleminin herhangi bir etkisi yoktur.
  • rankBy (isteğe bağlı) — Sırayı şurada belirtir: hangi sonuçların listelendiğini görebilirsiniz. Olası değerler:
    • google.maps.places.RankBy.PROMINENCE (varsayılan). Bu seçeneği, sonuçları önem derecelerine göre sıralar. Sıralama, belirlenen yarıçap içinde kalan belirgin yerleri, yakındaki yerlere tercih edin daha az belirgin olan yerlere ekleyebilirsiniz. Belirginlik bir yerin Google dizinindeki sıralamasından, dünya genelindeki popülerliğinden, ve diğer faktörler. Zaman google.maps.places.RankBy.PROMINENCE radius parametresinin kullanılması gerekir.
    • google.maps.places.RankBy.DISTANCE Bu seçenek sonuçları belirtilen uzaklığa göre artan düzende sıralar location (zorunlu). Belirtebileceğiniz bir özel bounds ve/veya radius RankBy.DISTANCE belirtin. Belirttiğinizde RankBy.DISTANCE, bir veya daha fazla keyword, name veya type gereklidir.
  • type — Şu özelliği kısıtlar: sonuçları belirtilen türle eşleşen yerlere gösterir. Yalnızca bir tür belirtilir (birden fazla tür sağlanırsa birinci türden sonraki tüm türler) girişi yoksayılır). desteklenir.

Ayrıca, şunu yapmak için nearbySearch() öğesine bir geri çağırma yöntemi iletmeniz gerekir: sonuç nesnesini işleyip google.maps.places.PlacesServiceStatus yanıt.

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 inceleyin

Metin Arama İstekleri

Google Rehber Metin Arama hizmeti, bir dizeye dayalı olarak bir yer kümesi hakkında bilgiler; örneğin, "İstanbul'da pizza" veya "İstanbul yakınındaki ayakkabı mağazaları" gibi bir arama yapabilirsiniz. Hizmet, metin dizesiyle eşleşen yerlerin bir listesi ve ayarlandı. Arama yanıtı bir yer listesi içerir. Gönderebileceğiniz Şuradaki yerlerden herhangi biri hakkında daha fazla bilgi almak için Yer Ayrıntılarını isteme: tıklayın.

Metin Aramaları, PlacesService öğesinin textSearch() yöntemi.

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

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

  • query (zorunlu) İşlemin yapılacağı metin dizesi Örneğin, "restoran" araması yapabilirsiniz. veya "Ana Cadde No: 123". Bu bir yer olmalıdır kuruluş adı, adresi veya kategorisi. Diğer giriş türleri hata oluşturur 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 alaka düzeyine göre otomatik olarak gösterir. Bu parametre isteğe bağlı hale gelir type parametresi arama isteğinde de kullanılırsa.
  • İsteğe bağlı olarak:
    • openNow — Boole değeri, Rehber hizmetinin yalnızca sorgu gönderildiğinde açık olan işletmelerdir. Bunu gerçekleştirmeyen yerler Google Rehber veritabanındaki çalışma saatlerini belirtme bu parametreyi sorgunuza dahil ederseniz döndürülür. Ayar openNow ile false işleminin herhangi bir etkisi yoktur.
    • minPriceLevel maxPriceLevel — Sonuçları, yalnızca şu konumdaki yerlerle kısıtlar: belirtilen fiyat düzeyinde. Geçerli değerler 0 aralığındadır (en uygun fiyatlı) - 4 (en pahalı) arasında.
    • Şunlardan birini yapın:
      • bounds değeri geçerli olmalıdır. Dikdörtgeni tanımlayan google.maps.LatLngBounds nesnesi alanı seçin. Sınırlar için desteklenen maksimum köşegen mesafe yaklaşık 100.000 metrelik bir alanı kapsayabilir.
      • location ve radius — Şunları yapabilirsiniz: belirli bir daire içine alacak sapmayı location ve bir radius parametresi. Bu, Rehber hizmetine, o hedefin içindeki sonuçları göstermeyi ekleyin. Tanımlanan alanın dışındaki sonuçlar gösterilmeye devam edebilir. Konum bir google.maps.LatLng nesne alır ve yarıçap, dairenin yarıçapını temsil eden basit bir tam sayı alır metre cinsinden. İzin verilen maksimum yarıçap 50.000 metredir.
    • type — Sonuçları, eşleşen yerlerle kısıtlar belirtilen tür. Yalnızca bir tür belirtilebilir (birden fazla türse türü sağlanırsa ilk girişten sonraki tüm türler yoksayılır). Görüntüleyin desteklenen türlerin listesine göz atın.

Ayrıca, şunu yapmak için textSearch() öğesine bir geri çağırma yöntemi iletmeniz gerekir: ve bir google.maps.places.PlacesServiceStatus yanıt.

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, ve hata ayıklama bilgilerini içerebilir. Ayrıca, bu sorunda yer isteğinin neden başarısız olduğu. Olası durum değerleri şunlardır:

  • INVALID_REQUEST: Bu istek geçersizdi.
  • OK: Yanıt geçerli bir sonuç içeriyor.
  • OVER_QUERY_LIMIT: Web sayfası, isteğini yerine getirdi kota.
  • REQUEST_DENIED: Web sayfasının Yerler Hizmeti.
  • UNKNOWN_ERROR: PlacesService isteği başarısız oldu işlendi. 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 algılandı.

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

  • business_status, operasyonel ve bu yer bir işletmeyse o yerin durumu. Aşağıdakilerden birini içerebilir: şu değerlere sahiptir:
    • OPERATIONAL
    • CLOSED_TEMPORARILY
    • CLOSED_PERMANENTLY
    ziyaret edin. Herhangi bir veri yoksa business_status döndürülmez.
  • formatted_address, okunabilir öğeleri içeren bir dizedir bu yerin adresi. formatted_address özelliği yalnızca Metin Arama için döndürüldü.

    Bu adres genellikle posta adresine eşdeğerdir. Bazı Birleşik Krallık gibi ülkelerde, doğru lisans kısıtlamaları nedeniyle posta adresi.

    Biçimlendirilmiş adres mantıksal olarak bir veya daha fazla adresinden oluşur. bileşenleri hakkında daha fazla bilgi edinin. Örneğin, "111 8. Cadde, İstanbul, Türkiye" adresi şu bileşenlerden oluşur: "111" (bina numarası), "8. Cadde" (rota), "New York" (şehir) ve "NY" (ABD eyaleti).

    Biçimlendirilmiş adresi programlı olarak ayrıştırmayın. Bunun yerine API yanıtına ek olarak dahil edilen bağımsız adres bileşenleri ekler.

  • geometry: Yerin geometriyle ilgili bilgileri. Bu şunları içerir:
    • location, yer.
    • viewport, aşağıdaki durumlarda harita üzerinde tercih edilen görüntü alanını tanımlar: bu yeri görüntülüyorsunuz.
  • permanently_closed (kullanımdan kaldırıldı) yerin kapatılıp kapatılmadığını gösteren bir boole işaretidir. (değer true) kalıcı veya geçici olarak devre dışı bırakılabilir. Kullanma permanently_closed Bunun yerine business_status kullanın. bilgi edinmek için kullanılabilir.
  • plus_code (bkz. Konum Kodunu Aç ve artı kodları) ekleyin. enlem ve boylam koordinatlarından türetilmiş kodlanmış bir konum referansıdır bir alanı ifade eder: derecenin 1/8000'i x 1/8000'i kadar (ekvatorda yaklaşık 14 m x 14 m) veya daha küçük olmalıdır. Artı kodları, mevcut olmadıkları yerlerde (binaların numaralandırılmamış veya numaralandırılmayan yerlerdeki açık adresleri) sokaklar adlandırılmamış).

    Plus code, genel kod ve bileşik kod olarak biçimlendirilmiştir:

    • global_code, 4 karakterli alan kodu ve 6 karakter veya daha uzun bir yerel koddur (849VCWC8+R9).
    • compound_code, açık bir konuma sahip 6 karakter veya daha uzun bir yerel koddur (CWC8+R9, Mountain View, CA, ABD). Bu içeriği programlı bir şekilde ayrıştırmayın.
    ziyaret edin. Genellikle hem genel kod hem de bileşik kod döndürülür. Ancak sonuç uzak bir konumda (örneğin, bir okyanus veya çöl) yalnızca küresel kod döndürülebilir.
  • html_attributions: Yapmanız gereken bir ilişkilendirme dizisi görüntülenir. Dizideki her giriş, tek bir ilişkilendirmeye ilişkin HTML metni. Not: Bu, toplamıdır. Tümü Bu nedenle yanıttaki PlaceResult nesne benzersiz olması gerekir.
  • icon, 71 x 71 piksel boyutlarında renkli bir PNG simgesinin URL'sini döndürür.
  • icon_mask_base_uri, renksiz bir öğenin temel URL'sini döndürür .svg veya .png uzantısı çıkarılmış olmalıdır.
  • icon_background_color, şunun için varsayılan HEX renk kodunu döndürür: yeri seçin.
  • name: Yerin adı.
  • opening_hours, şu bilgileri içerebilir:
    • open_now, yerin şu olup olmadığını gösteren bir boole değeridir: şu anda açık (Kullanımdan kaldırıldı Haritalar JavaScript API'sinde utc_offset_minutes kullanın ).
  • place_id, benzersiz bir şekilde tanımlayan metinsel bir tanımlayıcıdır yer. Yer hakkında bilgi almak için bu tanımlayıcıyı Yer Ayrıntıları isteyebilirsiniz. Bir yere referans verme hakkında daha fazla bilgi edinin girin.
  • rating, yerin derecelendirmesini içerir (örneğin, 0,0 ile 5,0 arasında) elde edebilirsiniz.
  • types Bir dizi bu yer için türler (ör. ["political", "locality"] veya ["restaurant", "lodging"]) tıklayın. Bu dizi, birden fazla değer içerebilir veya boştur. Yeni değerler önceden bildirilmeksizin sunulabilir. Şu listeye bakın: desteklenen türlere tabidir.
  • vicinity: Yerin basitleştirilmiş adresi. Bu adres şunları içerir: sokak adı, sokak numarası ve semt gibi bilgileri kullanabilirsiniz. il/eyalet, posta kodu veya ülke. Örneğin, Google'ın Sidney Avustralya ofisi, 5/48 Pirrama Road, Pyrmont olan vicinity değerine sahiptir.

Ek Sonuçlara Erişme

Varsayılan olarak her yer araması, sorgu başına en fazla 20 sonuç döndürür. Ancak, her arama, üç sayfaya bölünerek 60'a kadar sonuç döndürebilir. Daha fazla sayfaya PlaceSearchPagination üzerinden ulaşabilirsiniz nesnesini tanımlayın. Ek sayfalara erişmek için PlaceSearchPagination nesnesini ifade eder. İlgili içeriği oluşturmak için kullanılan PlaceSearchPagination nesnesi şu şekilde tanımlanır:

  • hasNextPage daha ileri sonuç mevcut. Ek bir teklif olduğunda true sonuç sayfası.
  • nextPage() sonraki kümeyi döndürecek bir işlev sonuç. Bir arama yürüttükten sonra iki saniye sonra kullanılabilir hale gelecektir.

Bir sonraki sonuç grubunu görmek için nextPage numaralı telefonu arayın. Sonuçların her sayfası, arama teriminin sonraki sayfası görüntülenmeden önce görüntülenmelidir. sonuç. Her bir aramanın, izin verir.

Aşağıdaki örnekte, geri çağırma işlevinizi yayınlayabilmeniz için PlaceSearchPagination nesnesini yakalama Birden çok arama isteği.

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 inceleyin

Örneği Deneyin

Yer Ayrıntıları

Yerler, bir bölgedeki yerlerin bir listesini sağlamanın yanı sıra, belirli bir yer hakkında ayrıntılı bilgi de verebilir. Bir kez bir yer bir yer arama yanıtında döndürüldüyse, yer kimliği, ek ayrıntı istemek için kullanılabilir (ör. tam adresi, telefon numarası, kullanıcı puanı) o yerle ilgili ve yorumlar vb.

Yer Ayrıntısı İstekleri

Yer Ayrıntıları, hizmetin getDetails() yöntemini çağırın.

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

Bu yöntem, istenen yerin placeId ve hangi tür Yerler verisi türlerini belirten alanlar geri dönüyor. Daha fazla bilgi: yer kimliğiyle bir yere referans verme hakkında daha fazla bilgi edinin.

Ayrıca, iletilen durum kodunu işlemesi gereken bir geri çağırma yöntemi alır. google.maps.places.PlacesServiceStatus yanıtında da aynı google.maps.places.PlaceResult nesnesi olabilir.

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 inceleyin

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. Örnek: fields: ['address_components', 'opening_hours', 'geometry']. Bileşik değerleri belirtirken nokta kullanın. Örnek: opening_hours.weekday_text.

Alanlar, Yer Ayrıntılarına karşılık gelir sonuçları üç faturalandırma kategorisine ayrılır: Temel, İletişim ve Atmosfer. Temel alanlar, taban ücretle faturalandırılır ve ek ücret ödemez. anlamına gelir. Kişi ve Atmosfer alanları daha yüksek ücretle faturalandırılır. Fiyatlandırma sayfasını inceleyin konulu videomuzu izleyin. İlişkilendirmeler (html_attributions) her zaman istenip istenmediğinden bağımsız olarak her çağrıda 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 (kullanımdan kaldırıldı , Maps JavaScript API), utc_offset_minutes, vicinity

İletişim

Kişi kategorisi aşağıdaki alanları içerir:
formatted_phone_number international_phone_number, website opening_hours

Atmosfer

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

Daha fazla bilgi: yer alanlarına ekleyin. Daha fazla Yer verisi isteklerinin nasıl faturalandırıldığına ilişkin bilgi için bkz. Kullanım ve Faturalandırma.

Yer Ayrıntılarıyla İlgili Yanıtlar

Durum Kodları

PlacesServiceStatus yanıt nesnesi, ve hata ayıklama bilgilerini içerebilir. Ayrıca, bu sorunda Yer Ayrıntısı isteğinin neden başarısız olduğu. Olası durum değerleri şunlardır:

  • INVALID_REQUEST: Bu istek geçersizdi.
  • OK: Yanıt geçerli bir sonuç içeriyor.
  • OVER_QUERY_LIMIT: Web sayfası, isteğini yerine getirdi kota.
  • NOT_FOUND Referans verilen konum şu değildi Rehber veritabanında bulundu.
  • REQUEST_DENIED: Web sayfasının Yerler Hizmeti.
  • UNKNOWN_ERROR: PlacesService isteği başarısız oldu işlendi. 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() araması, Aşağıdaki özelliklere sahip PlaceResult nesnesi:

  • address_components: Ayrı bu adres için geçerli olan bileşenleri içerir.

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

    • types[], türünü gösteren bir dizidir adres bileşeni. Şu listeye bakın: desteklenen türlere tabidir.
    • long_name, adres bileşeninin her bir adımını içerir.
    • short_name, adres için kısaltılmış bir metin adıdır bileşenini (varsa) çağırın. Örneğin, eyalet için bir adres bileşeni için sahip olduğu long_name oranında "Alaska" ve short_name/"AK" kullanın.

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

    • Adres bileşenleri dizisi, formatted_address
    • Bu dizi, aşağıda belirtilenlerin dışında bir adres içeren formatted_address Tüm siyasi varlıkları geri almak için veya belirli bir adres içerenler varsa ters coğrafi kodlamayı, isteğin bir parametresi olarak adresin enlem/boylamı.
    • Yanıt biçiminin kabul edersiniz. Özellikle, address_components sayısı talep edilen adrese göre değişir ve zaman içinde aynı adrese sahip olmalıdır. Bir bileşen, dizideki konumunu değiştirebilir. Bileşenin türü değişebilir. Belirli bir bileşen, yanıt veremeyebilirsiniz.
  • business_status, operasyonel ve bu yer bir işletmeyse o yerin durumu. Aşağıdakilerden birini içerebilir: şu değerlere sahiptir:
    • OPERATIONAL
    • CLOSED_TEMPORARILY
    • CLOSED_PERMANENTLY
    ziyaret edin. 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 adresine eşdeğerdir. Bazı Birleşik Krallık gibi ülkelerde, doğru lisans kısıtlamaları nedeniyle posta adresi.

    Biçimlendirilmiş adres mantıksal olarak bir veya daha fazla adresinden oluşur. bileşenleri hakkında daha fazla bilgi edinin. Örneğin, "111 8. Cadde, İstanbul, Türkiye" adresi şu bileşenlerden oluşur: "111" (bina numarası), "8. Cadde" (rota), "New York" (şehir) ve "NY" (ABD eyaleti).

    Biçimlendirilmiş adresi programlı olarak ayrıştırmayın. Bunun yerine API yanıtına ek olarak dahil edilen bağımsız adres bileşenleri ekler.

  • formatted_phone_number: Yerin telefon numarası (biçimlendirilmiş) uyarınca numaranın bölgesel kurallarını kullanın.
  • geometry: Yerin geometriyle ilgili bilgileri. Bu şunları içerir:
    • location, yer.
    • viewport, aşağıdaki durumlarda harita üzerinde tercih edilen görüntü alanını tanımlar: bu yeri görüntülüyorsunuz.
  • permanently_closed (kullanımdan kaldırıldı) yerin kapatılıp kapatılmadığını gösteren bir boole işaretidir. (değer true) kalıcı veya geçici olarak devre dışı bırakılabilir. Kullanma permanently_closed Bunun yerine business_status kullanın. bilgi edinmek için kullanılabilir.
  • plus_code (bkz. Konum Kodunu Aç ve artı kodları) ekleyin. enlem ve boylam koordinatlarından türetilmiş kodlanmış bir konum referansıdır bir alanı ifade eder: derecenin 1/8000'i x 1/8000'i kadar (ekvatorda yaklaşık 14 m x 14 m) veya daha küçük olmalıdır. Artı kodları, mevcut olmadıkları yerlerde (binaların numaralandırılmamış veya numaralandırılmayan yerlerdeki açık adresleri) sokaklar adlandırılmamış).

    Plus code, genel kod ve bileşik kod olarak biçimlendirilmiştir:

    • global_code, 4 karakterli alan kodu ve 6 karakter veya daha uzun bir yerel koddur (849VCWC8+R9).
    • compound_code, açık bir konuma sahip 6 karakter veya daha uzun bir yerel koddur (CWC8+R9, Mountain View, CA, ABD). Bu içeriği programlı bir şekilde ayrıştırmayın.
    ziyaret edin. Genellikle hem genel kod hem de bileşik kod döndürülür. Ancak sonuç uzak bir konumda (örneğin, bir okyanus veya çöl) yalnızca küresel kod döndürülebilir.
  • html_attributions: Şunun için görüntülenecek atıf metni: bu yer sonucu.
  • icon: Şu işlemler için kullanılabilecek bir resim kaynağının URL'si: bu yerin türünü temsil ediyor.
  • international_phone_number, bu yerin telefonunu içeriyor kullanabilirsiniz. Uluslararası biçim ülke bilgisini de içerir kodudur ve önünde artı (+) işareti bulunur. Örneğin, Google'ın Sidney şehri için international_phone_number ofis adresi: +61 2 9374 4000.
  • name: Yerin adı.
  • utc_offset Kullanımdan kaldırıldı Bunun yerine, Maps JavaScript API'de utc_offset_minutes kullanın.
  • utc_offset_minutes, bu etkinliğin dakika sayısını içeriyor yerin geçerli saat dilimi UTC ile arasındaki farktır. Örneğin, Türkiye’deki Sidney, Avustralya'da yaz saati uygulaması sırasında bu değer 660 (+11 saat) (UTC'den) ve Kaliforniya'da yaz saati dışında kalan yerler için bu, -480 (UTC'den -8 saat) olacaktır.
  • opening_hours, şu bilgileri içeriyor:
    • open_now (Kullanımdan kaldırıldı Yerler Kitaplığı, Maps JavaScript API'de; kullan opening_hours.isOpen() işlevini kullanın. Nasıl kullanacağınızı öğrenmek için bu videoyu izleyin. Yer Ayrıntılarıyla isOpen.) yerin şu anda açık olup olmadığını gösteren bir boole değeridir gerekir.
    • periods[], yediyi kapsayan bir açılış dönemi dizisidir gün içinde kronolojik sırada gösterilir. Her dönem şunu içerir:
      • open, bir çift gün ve saat nesnesi içeriyor mekanın ne zaman açıldığını öğrenme:
        • day, günlere karşılık gelen 0-6 arasında bir sayı belirli bir süre için sunulacak. Örneğin, 2, Salı.
        • time, günün saatini 24 saat ssdd biçiminde içerebilir biçiminde (değerler 0000–2359 aralığındadır). İlgili içeriği oluşturmak için kullanılan time, ilgili yerin saat diliminde raporlanacak.
      • close, bir çift gün ve saat nesnesi içerebilir yer kapanıyor. Not: Bir yer her zaman açık ise close bölümü eksik olabilir. Uygulamalar her zaman açık olabilir. içeren open dönemi olarak temsil edilir değeri 0 ve time değeri 0000 olan day, close yok.
    • weekday_text, aşağıdakileri temsil eden yedi dizeden oluşan bir dizidir haftanın her günü için biçimlendirilmiş çalışma saatleridir. Yer Ayrıntıları'nda language parametresi belirtildi için, Rehber Hizmeti, açılış saatlerini biçimlendirip yerelleştirecektir. uygun olmasını sağlayabilirsiniz. Buradaki öğelerin sıralaması, dizisi, language parametresine bağlıdır. Bazı diller hafta pazartesi günü, diğerlerinin pazar günü başlar.
  • permanently_closed (kullanımdan kaldırıldı) yerin kapatılıp kapatılmadığını gösteren bir boole işaretidir. (değer true) kalıcı veya geçici olarak devre dışı bırakılabilir. Kullanma permanently_closed Bunun yerine business_status kullanın. bilgi edinmek için kullanılabilir.
  • photos[]: PlacePhoto nesneden oluşan bir dizi. PlacePhoto özelliği, getUrl() yöntemini kullanabilir veya nesnede şu değerlere sahiptir:
    • height: resmin piksel cinsinden maksimum yüksekliği.
    • width: resmin piksel cinsinden maksimum genişliği.
    • html_attributions: Gösterilecek atıf metni bu yer fotoğrafıyla.
  • place_id: Bir kullanıcıyı benzersiz bir şekilde tanımlayan metinsel bir tanımlayıcı yer alır ve bir web sitesi aracılığı ile söz konusu yer hakkında bilgi Yer Ayrıntıları isteyin. Bir yere referans verme hakkında daha fazla bilgi edinin girin.
  • rating: Yerin 0, 0 ile 5, 0 arasındaki puanı. toplu kullanıcı yorumları.
  • reviews (beş adede kadar yorumdan oluşan dizi). Her yorum birkaç bileşenden oluşur:
    • aspects[], Her biri bir sağlayan PlaceAspectRating nesne derecelendirmesi. İlk nesne birincil özellik olarak kabul edilir. Her biri PlaceAspectRating şu şekilde tanımlanır:
      • type değerlendirilen özelliğin adı. Şu türler desteklenir: appeal, atmosphere decor, facilities, food, overall, quality ve service.
      • rating kullanıcının bu özel için puanı en boy oranı (0 ile 3 arasında).
    • author_name yorum yazın. Anonim yorumlar "Bir Google kullanıcısı" olarak ilişkilendirilir. dil parametresinin ayarlandığını ve ardından "Bir Google kullanıcısı" kelime öbeğini şunu içerecek: yerelleştirilmiş bir dize döndürür.
    • author_url, kullanıcının Google+ profilinin URL'sini kullanılabilir.
    • language dili belirten bir IETF dil kodu kullanıcının yorumunda kullanılır. Bu alan ana dil etiketini içerir (ülke veya bölgeyi belirten ikincil etiket ile değil) girin. Örneğin, Örneğin, İngilizce yorumların tümü "en-AU" olarak değil, 'en' şeklinde etiketlenir. veya "en-UK" vb.
    • rating kullanıcının bu yer için genel puanı. Bu 1 ile 5 arasında bir tam sayıdır.
    • text (kullanıcının yorumu). Bir Google Rehber'de konum ile ilgili metin yorumları isteğe bağlı olarak değerlendirilir; bu nedenle bu alan boş olabilir.
  • types Bir dizi bu yer için türler (ör. ["political", "locality"] veya ["restaurant", "lodging"]) tıklayın. Bu dizi, birden fazla değer içerebilir veya boştur. Yeni değerler önceden bildirilmeksizin sunulabilir. Şu listeye bakın: desteklenen türleri ziyaret edin.
  • url: Buna ait resmi Google sayfasının URL'si yer. Bu sayfa, Google'ın sahip olduğu en iyi arama bilgileri görmek için kullanabilirsiniz. Uygulamalar bağlanmalı veya yerleştirilmelidir bu sayfayı ziyaret ederek, söz konusu yerle ilgili ayrıntılı sonuçları belirtir.
  • vicinity: Yerin basitleştirilmiş adresi. Bu adres şunları içerir: sokak adı, sokak numarası ve semt gibi bilgileri kullanabilirsiniz. il/eyalet, posta kodu veya ülke. Örneğin, Google'ın Sidney Avustralya ofisi, 5/48 Pirrama Road, Pyrmont olan vicinity değerine sahiptir. vicinity özelliği yalnızca döndürülür Yakında Arama araması yapabilirsiniz.
  • website bu yerle ilgili yetkili web sitesini listeliyor; örneğin işletme olarak ana sayfa.

Not: Çok boyutlu derecelendirmeler, tüm konumlar. Çok az sayıda yorum varsa ayrıntılar yanıtı varsa 0,0 ile 5,0 arasında eski bir derecelendirme içermeli ya da hiç derecelendirme içermemelidir hiç önemli değil.

Yere Genel Bakış bileşenini kullanma

Not: Bu örnekte açık kaynak bir kitaplık kullanılmaktadır. Bkz. Destek için README geri bildirim almaktır.

Web bileşenlerini deneyin. Yere Genel Bakış web bileşenini kullanarak yer ayrıntılarını görsel bir temsille görüntüleyin.


    Kullanıcı tarafından girilen boyut alanına göre gösterilen Yere Genel Bakış bileşeni.
Şekil 1: Beş farklı boyut varyasyonuyla yer ayrıntıları bilgileri

Yer Kimliğiyle Bir Yere Referans Verme

Yer kimliği, Google Haritasındaki bir yere ait benzersiz bir referanstır. Yer kimlikleri işletmeler, önemli noktalar, parklar ve mağazalar dahil birçok konumda kullanılabilir bir sütun var.

Uygulamanızda yer kimliği kullanmak için öncelikle Yer Arama veya Ayrıntılar isteğinin PlaceResult bölümünde mevcut. Daha sonra, arama yapmak için Yer Ayrıntılar.

Yer kimlikleri, belirtilen önbelleğe alma kısıtlamalarından muaftır. bu Sözleşme'nin Bölüm 3.2.3(b) Google Haritalar Platformu Hizmet Şartları. Bu nedenle, yer kimliği değerlerini daha sonra kullanmak üzere saklayabilirsiniz. Örneğin, en iyi uygulamalarla ilgili daha fazla bilgi edinmek için yer kimliğine genel bakış.

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, yüksek kaliteli fotoğraflar eklemenize olanak tanır. daha iyi hale getirir. Fotoğraf hizmeti milyonlarca fotoğrafa ve Google Rehber ve Google+ Yerel veritabanında depolanan fotoğraflar. Yer aldığınızda Yer Ayrıntısı isteği kullanılan bir fotoğraf, fotoğraf alakalı fotoğraf içeriği için referanslar döndürülür. Yakındaki Arama Ayrıca, Metin Arama istekleri her yer için tek bir fotoğraf referansı da döndürür. emin olun. Daha sonra Fotoğraf hizmetini kullanarak referans verilen fotoğraflara ve resmi uygulamanız için optimum boyuta yeniden boyutlandırın.

PlacePhoto nesne dizisi, şunun parçası olarak döndürülür: Herhangi bir getDetails() için PlaceResult nesnesi, textSearch() veya PlacesService ile ilgili nearbySearch() istek gönderildi.

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

  • Yakındaki Arama veya Metin Arama en fazla bir sonuç döndürür PlacePhoto nesne algılandı.
  • Ayrıntılar isteği on adede kadar PlacePhoto nesne döndürür.

Şunu çağırarak ilişkili resmin URL'sini isteyebilirsiniz: PlacePhoto.getUrl() yöntemini kullanmak ve geçerli bir PhotoOptions nesne algılandı. PhotoOptions nesnesi, resmin istediğiniz maksimum yüksekliğini ve genişliğini belirtmenizi sağlar. Şu durumda: hem maxHeight hem de maxWidth için bir değer belirtin. fotoğraf hizmeti, resmi iki boyuttan daha küçük olacak şekilde yeniden boyutlandırır. korunduğundan emin olun.

Aşağıdaki kod snippet'i bir yer nesnesini kabul eder ve buna bir işaretçi ekler Haritalar'ı tıklayın. Varsayılan işaretçi resmi değiştirilir fotoğrafın küçük bir versiyonunu kullanabilirsiniz.

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ğraflar hizmeti tarafından döndürülen fotoğraflar çeşitli kaynaklardan alınır. (işletme sahipleri ve kullanıcıların katkıda bulunduğu fotoğraflar dahil) Çoğu zaman durumlarda, bu fotoğraflar atıf yapılmadan kullanılabilir veya atıf. Ancak, döndürülen photo öğesi html_attributions alanına, ek özelliğini kullanabilirsiniz.