Genel Bakış
Maps JavaScript API'deki Yerler Kitaplığı'ndaki işlevler, uygulamanızın belirli bir alan (ör. bir haritanın sınırları) veya sabit bir nokta çevresindeki yerleri (bu API'de tesis, coğrafi konum veya önemli ilgi çekici yer olarak tanımlanır) aramasını sağlar.
Places API, uygulamalarınıza Google Haritalar arama alanının önceden yazmayla arama davranışını kazandırmak için kullanabileceğiniz bir otomatik tamamlama özelliği sunar. Kullanıcı bir adres yazmaya başladığında otomatik tamamlama özelliği geri kalanını doldurur. Daha fazla bilgi için otomatik tamamlama dokümanlarını inceleyin.
Başlarken
Maps JavaScript API veya JavaScript hakkında bilginiz yoksa başlamadan önce JavaScript'i ve API anahtarı edinme başlıklı makaleyi incelemenizi öneririz.
API'leri etkinleştir
Maps JavaScript API'deki Yerler kitaplığını kullanmadan önce, Google Cloud Konsolu'nda, Maps JavaScript API için oluşturduğunuz projede Yerler API'sinin etkinleştirildiğinden emin olun.
Etkin API'lerinizin listesini görüntülemek için:
- Google Cloud Console'a gidin.
- Proje seç düğmesini tıklayın, ardından Maps JavaScript API için oluşturduğunuz projeyi seçin ve Aç'ı tıklayın.
- Kontrol panelindeki API listesinde Places API'yi bulun.
- Listede Places API'yi görüyorsanız API zaten etkinleştirilmiştir. API listelenmemişse etkinleştirin:
- Sayfanın üst kısmında API'LER VE HİZMETLER'İ ETKİNLEŞTİR'i seçerek Kitaplık sekmesini görüntüleyin. Alternatif olarak, sol taraftaki menüden Kitaplık'ı da seçebilirsiniz.
- Places API'yi arayın ve sonuçlar listesinden seçin.
- ETKİNLEŞTİR'i seçin. İşlem tamamlandığında Kontrol paneli'ndeki API listesinde Places API görünür.
Kitaplığı yükleme
Yerler hizmeti, ana Maps JavaScript API kodundan ayrı, kendi kendine yeten bir kitaplıktır. Bu kitaplıktaki işlevleri kullanmak için öncelikle Haritalar API'nin önyükleme URL'sindeki libraries
parametresini kullanarak kitaplığı 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 API anahtarının API kısıtlamaları listesine ekleme
Anahtarlarınıza API kısıtlamaları uygulamak, API anahtarının kullanımını bir veya daha fazla API ya da SDK ile sınırlandırır. API anahtarıyla ilişkilendirilen API veya SDK'lara yapılan istekler işlenir. API anahtarıyla ilişkilendirilmeyen API veya SDK'lara yapılan istekler başarısız olur. Bir API anahtarını Yerler Kitaplığı, Maps JavaScript API ile kullanım için kısıtlamak üzere:- Google Cloud Console'a gidin.
- Proje açılır menüsünü tıklayın ve güvenliğini sağlamak istediğiniz API anahtarını içeren projeyi seçin.
- Menü düğmesini tıklayın ve Google Haritalar Platformu > Kimlik Bilgileri'ni seçin.
- Kimlik bilgileri sayfasında, koruma altına almak istediğiniz API anahtarının adını tıklayın.
- 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 Maps JavaScript API'yi hem de Places API'yi seçin.
(API'lerden biri listede yoksa etkinleştirmeniz gerekir.)
- KAYDET'i tıklayın.
Kullanım sınırları ve politikaları
Kotalar
Places API'nin Kullanım Sınırları dokümanında açıklandığı gibi, Places Kitaplığı, Places API ile bir kullanım kotası paylaşır.
Politikalar
Yerler Kitaplığı, Maps JavaScript API'nin kullanımı, Places API için açıklanan politikalara uygun olmalıdır.
Yer aramaları
Yerler hizmetini kullanarak aşağıdaki arama türlerini gerçekleştirebilirsiniz:
- Sorgudan Yer Bulma, bir metin sorgusuna (ör. bir yerin adı veya adresi) göre yer döndürür.
- Telefon Numarasından Yer Bulma, telefon numarasına göre bir yer döndürür.
- Yakındaki Yerler kullanıcının konumuna göre yakındaki yerlerin listesini döndürür.
- Metin Arama Arama dizesine göre yakındaki yerlerin listesini döndürür (ör. "Pizza".
- Yer Ayrıntıları istekleri, kullanıcı yorumları dahil olmak üzere belirli bir yer hakkında daha ayrıntılı bilgi döndürür.
Döndürülen bilgiler arasında restoran, mağaza ve ofis gibi tesisler ile adresleri, kasaba ve şehir gibi siyasi bölgeleri ve diğer önemli yerleri gösteren "coğrafi kod" sonuçları yer alabilir.
Yer Bulma istekleri
Yer bulma isteği, bir yeri metin sorgusuna veya telefon numarasına göre aramanıza olanak tanır. Yer bulma isteği iki türdedir:
Sorgudan Yer Bulma
Sorgudan Yer Bulma, metin girişi alır ve yer döndürür. Giriş, işletme adı veya adresi gibi herhangi bir Yer verisi olabilir. Sorgudan Yer Bul isteği göndermek için PlacesService
'nin aşağıdaki parametreleri alan findPlaceFromQuery()
yöntemini çağırın:
query
(zorunlu) Aramanın yapılacağı metin dizesi. Örneğin: "restoran" veya "123 Ana 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ürülmesi garanti edilmez. Places API, bu dizeye dayalı olarak 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 verilerinin türlerini belirten bir veya daha fazla alan.locationBias
(isteğe bağlı) Arama yapılacak alanı tanımlayan koordinatlar. Bu durum aşağıdakilerden biri olabilir:- LatLngLiteral veya LatLng nesnesi olarak belirtilen bir dizi enlem/boylam koordinatı
- Dikdörtgen sınırlar (iki enlem/boylam çifti veya bir LatLngBounds nesnesi)
- Bir enlem/boylam değerine odaklı yarıçap (metre cinsinden)
Sonuçlar nesnesini ve google.maps.places.PlacesServiceStatus
yanıtını işlemek için findPlaceFromQuery()
'e bir geri çağırma yöntemi de göndermeniz gerekir.
Aşağıdaki örnekte, "Avustralya Modern Sanat Müzesi" için arama yapan ve name
ile geometry
alanlarını içeren bir findPlaceFromQuery()
çağrısı 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); } }); }
Telefon Numarasından Yer Bulma
Telefon Numarasından Yer Bulma, telefon numarası alır ve yer döndürür. Telefon numarasından yer bulma isteği göndermek için PlacesService
'nin aşağıdaki parametreleri alan findPlaceFromPhoneNumber()
yöntemini çağırın:
phoneNumber
(zorunlu) E.164 biçiminde bir telefon numarası.fields
(zorunlu) Döndürülecek yer verilerinin türlerini belirten bir veya daha fazla alan.locationBias
(isteğe bağlı) Arama yapılacak alanı tanımlayan koordinatlar. Bu, aşağıdakilerden biri olabilir:- LatLngLiteral veya LatLng nesnesi olarak belirtilen bir dizi enlem/boylam koordinatı
- Dikdörtgen sınırlar (dört enlem/boylam noktası veya bir LatLngBounds nesnesi)
- Bir enlem/boylam değerine odaklı yarıçap (metre cinsinden)
Sonuçlar nesnesini ve google.maps.places.PlacesServiceStatus
yanıtını işlemek için findPlaceFromPhoneNumber()
'e bir geri çağırma yöntemi de göndermeniz gerekir.
Alanlar (Yer Bulma yöntemleri)
Döndürülecek yer veri 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 fiyat ü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 göz atın. İstek yapılmasa da ilişkilendirmeler (html_attributions
) her aramada döndürülür.
Temel
Temel kategori aşağıdaki alanları içerir:
business_status
, formatted_address
, geometry
,
icon
,icon_mask_base_uri
, icon_background_color
,
name
, permanently_closed
(desteklenmiyor),
photos
, place_id
, plus_code
, types
İletişim
İletişim kategorisi aşağıdaki alanı içerir:opening_hours
(Yerler Kitaplığı, Maps JavaScript API'de desteklenmiyor.
opening_hours
sonuçlarını almak için bir Yer Ayrıntıları 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 önyargısını ayarlama (Yer bulma yöntemleri)
Yer Bulma'nın belirli bir bölgedeki sonuçları tercih etmesini sağlamak için locationBias
parametresini kullanın. locationBias
değerini aşağıdaki şekillerde ayarlayabilirsiniz:
Sonuçları belirli bir bölgeye 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ı merkeze alan, arama yapılacak yarıçapı (metre cinsinden) tanımlayın:
locationBias: {radius: 100, center: {lat: 37.402105, lng: -122.081974}}
Yakında Arama İstekleri
Yakındaki Yerler araması, belirli bir alandaki yerleri anahtar kelimeye veya türe göre aramanızı sağlar. Yakında Arama her zaman bir konum içermelidir. Bu konum, iki yöntemden biriyle belirtilebilir:
- a
LatLngBounds
. location
özelliğinin (çemberin merkeziniLatLng
nesnesi olarak belirten) ve metre cinsinden ölçülen bir yarıçapın kombinasyonu olarak tanımlanan dairesel bir alan.
Yakındaki Yerler araması,
PlacesService
nesnesinin nearbySearch()
yönteminin çağrılmasıyla başlatılır. Bu yöntem,
PlaceResult
nesnesi dizisi döndürür. 3.9 sürümü itibarıyla nearbySearch()
yönteminin search()
yönteminin yerini aldığını unutmayın.
service = new google.maps.places.PlacesService(map); service.nearbySearch(request, callback);
Bu yöntem, aşağıdaki alanlara sahip bir istek alır:
- Şu yöntemlerden birini kullanın:
bounds
, dikdörtgen arama alanını tanımlayan birgoogle.maps.LatLngBounds
nesnesi olmalıdır. Sınır alanı için desteklenen maksimum çapraz mesafe yaklaşık 100.000 metredir.- bir
location
ve birradius
; ilki birgoogle.maps.LatLng
nesnesi, ikincisi ise dairenin yarıçapını metre cinsinden temsil eden basit bir tam sayı alır. İzin verilen maksimum yarıçap 50.000 metredir.rankBy
DISTANCE olarak ayarlandığındalocation
belirtmeniz gerektiğini ancakradius
veyabounds
belirtemeyeceğinizi unutmayın.
keyword
(isteğe bağlı) — Ad, tür ve adres dahil ancak bunlarla sınırlı olmamak üzere mevcut tüm alanlarla (ayrıca müşteri yorumları ve diğer üçüncü taraf içerikleri) eşleştirilecek bir terim.minPriceLevel
vemaxPriceLevel
(isteğe bağlı): Sonuçları yalnızca belirtilen aralıktaki yerlerle sınırlandırır. Geçerli değerler 0 (en uygun fiyatlı) ile 4 (en pahalı) arasındadır (bu değerler dahil).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 parçası olarak iletilir.openNow
(isteğe bağlı) : Places hizmetinin yalnızca sorgu gönderildiği sırada açık olan yerleri döndürmesi gerektiğini belirten bir boole değeridir. Sorgunuza bu parametreyi eklerseniz Google Haritalar veritabanında çalışma saatlerini belirtmeyen yerler döndürülmez.openNow
'ünfalse
olarak ayarlanmasının bir etkisi yoktur.rankBy
(isteğe bağlı): Sonuçların listelendiği sırayı belirtir. Olası değerler:google.maps.places.RankBy.PROMINENCE
(varsayılan). Bu seçenek, sonuçları önemlerine göre sıralar. Sıralama, belirlenen yarıçap içindeki belirgin yerleri, eşleşen ancak daha az belirgin olan yakındaki yerlere göre tercih eder. Belirginlik, bir yerin Google'ın dizininde aldığı sıralamadan, dünya genelindeki popülerliğinden ve diğer faktörlerden etkilenebilir.google.maps.places.RankBy.PROMINENCE
belirtildiğinderadius
parametresi gereklidir.google.maps.places.RankBy.DISTANCE
. Bu seçenek, sonuçları belirtilenlocation
'a olan mesafelerine göre artan düzende sıralar (zorunlu).RankBy.DISTANCE
belirtiyorsanız özelbounds
ve/veyaradius
belirtemeyeceğinizi unutmayın.RankBy.DISTANCE
değerini belirttiğinizdekeyword
,name
veyatype
özelliklerinden biri veya daha fazlası gereklidir.
type
: Sonuçları, belirtilen türle eşleşen yerlerle sınırlandırır. Yalnızca bir tür belirtilebilir (birden fazla tür sağlanırsa ilk girişi izleyen 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()
'e bir geri çağırma yöntemi de göndermeniz 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]); } } }
Metin Arama İstekleri
Google Haritalar Metin Arama hizmeti, bir dizeye göre (ör. "New York'ta pizza" veya "Ottawa yakınlarındaki ayakkabı mağazaları") bir dizi yer hakkında bilgi döndüren bir web hizmetidir. Hizmet, metin dizesine eşleşen yerlerin ve ayarlanmış konum yanlılığının bir listesini döndürür. Arama yanıtı, yerlerin listesini içerir. 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 textSearch()
yöntemine yapılan bir çağrıyla başlatılır.
service = new google.maps.places.PlacesService(map); service.textSearch(request, callback);
Bu yöntem, aşağıdaki alanlara sahip bir istek alır:
query
(zorunlu) Aramanın yapılacağı metin dizesi. Örneğin: "restoran" veya "123 Ana 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ürülmesi garanti edilmez. Yerler 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. Arama isteğindetype
parametresi de kullanılıyorsa bu parametre isteğe bağlı hale gelir.- İsteğe bağlı:
openNow
: Yerler hizmetinin yalnızca sorgu gönderildiği sırada açık olan yerleri döndürmesi gerektiğini belirten bir boole değeridir. Bu parametreyi sorgunuza eklerseniz Google Places veritabanında çalışma saatlerini belirtmeyen yerler döndürülmez.openNow
'ünfalse
olarak ayarlanmasının hiçbir etkisi yoktur.minPriceLevel
vemaxPriceLevel
— Sonuçları yalnızca belirtilen fiyat düzeyindeki yerlerle sınırlandırır. Geçerli değerler 0 (en uygun fiyatlı) ile 4 (en pahalı) arasındadır (bu değerler dahil).- Şu yöntemlerden birini kullanın:
bounds
, dikdörtgen arama alanını tanımlayan birgoogle.maps.LatLngBounds
nesnesi olmalıdır. Sınır alanı için desteklenen maksimum çapraz mesafe yaklaşık 100.000 metredir.location
veradius
:location
veradius
parametresini ileterek sonuçları belirli bir daireye yönlendirebilirsiniz. Bu, Yerler hizmetine bu dairenin içindeki sonuçları göstermeyi tercih etmesini söyler. Tanımlanan alanın dışındaki sonuçlar yine de gösterilebilir. Konum, birgoogle.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 sınırlandırır. Yalnızca bir tür belirtilebilir (birden fazla tür sağlanırsa ilk girişten sonraki tüm türler yoksayılır). Desteklenen türlerin listesine bakın.
Sonuç nesnesini ve google.maps.places.PlacesServiceStatus
yanıtını işlemek için textSearch()
'e bir geri çağırma yöntemi de göndermeniz 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 belirlemenize yardımcı olacak hata ayıklama bilgilerini içerebilir. Olası durum değerleri:
INVALID_REQUEST
: Bu istek geçersizdi.OK
: Yanıt geçerli bir sonuç içeriyor.OVER_QUERY_LIMIT
: Web sayfası istek kotasını aştı.REQUEST_DENIED
: Web sayfası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
nesnesi dizisi döndürür.
Her PlaceResult
nesnesi aşağıdaki özellikleri içerebilir:
business_status
, işletme ise yerin faaliyet durumunu gösterir. Aşağıdaki değerlerden birini içerebilir:OPERATIONAL
CLOSED_TEMPORARILY
CLOSED_PERMANENTLY
business_status
döndürülmez.formatted_address
, bu yerin okunabilir adresini içeren bir dizedir.formatted_address
mülkü yalnızca metin araması için döndürülür.Bu adres genellikle posta adresiyle aynıdır. Birleşik Krallık gibi bazı ülkelerde, lisanslama kısıtlamaları nedeniyle gerçek posta adreslerinin dağıtılmasına izin verilmediğini unutmayın.
Biçimlendirilmiş adres mantıksal olarak bir veya daha fazla adres bileşeninden oluşur. Örneğin, "111 8. Cadde, New York, NY" adresi şu bileşenlerden oluşur: "111" (bina numarası), "8. Cadde" (rota), "New York" (şehir) ve "NY" (ABD eyaleti).
Biçimlendirilmiş adresi programatik 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 geometriyle ilgili bilgileri. 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üntü alanını tanımlar.
permanently_closed
(desteklenmiyor), yerin kalıcı veya geçici olarak kapanıp kapanmadığını belirten bir boole işaretidir (true
değeri).permanently_closed
değerini kullanmayın. Bunun yerine, işletmelerin çalışma durumunu almak içinbusiness_status
plus_code
(Açık Konum Kodu ve artı kodları ile ilgili bölüme bakın) enlem ve boylam koordinatlarından türetilen, bir alanı temsil eden kodlanmış bir konum referansı: derecenin 1/8000'i ile derecenin 1/8000'i (ekvatorda yaklaşık 14 m x 14 m) veya daha küçük bir alan. Plus code'lar, açık adreslerin bulunmadığı yerlerde (binaların numaralandırılmadığı veya sokakların adlandırılmadığı yerlerde) açık adreslerin yerine kullanılabilir.Artı kodu, genel kod ve bileş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
, açık bir konum içeren 6 karakter veya daha uzun bir yerel koddur (CWC8+R9, Mountain View, CA, ABD). Bu içeriği programatik olarak ayrıştırmayın.
html_attributions
: Arama sonuçlarını gösterirken göstermeniz gereken bir ilişkilendirme dizisi. Dizideki her giriş, tek bir ilişkilendirmenin HTML metnini içerir. Not: Bu, arama yanıtının tamamına ait tüm ilişkilendirmelerin toplamıdır. Bu nedenle, yanıttaki tümPlaceResult
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
, renkli olmayan bir simgenin temel URL'sini .svg veya .png uzantısı olmadan 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ı belirten bir boole değeridir (Yerler Kitaplığı'nda desteği sonlandırılmıştır. Bunun yerineutc_offset_minutes
kullanın).
place_id
, bir yeri benzersiz şekilde tanımlayan metin tabanlı bir tanımlayıcı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 0,0 ile 5,0 arasında değişen bir puan içerir.types
Bu yer için bir tür dizisi (ör.["political", "locality"]
veya["restaurant", "lodging"]
). Bu dizi birden fazla değer içerebilir veya boş olabilir. Yeni değerler önceden bildirim gönderilmeden kullanıma sunulabilir. Desteklenen türlerin listesine bakın.vicinity
: İl/ilçe, posta kodu veya ülke bilgileri hariç olmak üzere, yerin sokak adı, bina numarası ve mahallesi dahil olmak üzere basitleştirilmiş adresi. Örneğin, Google'ın Sidney, Avustralya ofisininvicinity
değeri5/48 Pirrama Road, Pyrmont
'dur.
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ünmüş 60'a kadar sonuç döndürebilir.
PlaceSearchPagination
nesnesi üzerinden ek sayfalara erişebilirsiniz. Ek sayfalara erişmek için bir geri çağırma işlevi aracılığıyla PlaceSearchPagination
nesnesini yakalamanız gerekir. PlaceSearchPagination
nesnesi şu şekilde tanımlanır:
hasNextPage
daha fazla sonuç olup olmadığını belirten bir boole mülkü.true
ek bir sonuç sayfası varsanextPage()
sonraki sonuç kümesini döndüren bir işlev. Bir aramayı yürüttükten sonra, sonraki sonuç sayfasının görünmesi için iki saniye beklemeniz gerekir.
Sonraki sonuç grubunu görmek için nextPage
numaralı telefonu arayın.
Sonuçların her sayfası, sonraki sonuç sayfası gösterilmeden önce gösterilmelidir. Her aramanın, kullanım sınırlarınıza göre tek bir istek olarak sayıldığını unutmayın.
Aşağıdaki örnekte, birden fazla arama isteği gönderebilmek 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 Deneyin
Yer Ayrıntıları
Yerler hizmeti, bir bölgedeki yerlerin listesini sağlamanın yanı sıra belirli bir yer hakkında ayrıntılı bilgi de döndürebilir. Bir yer arama yanıtında bir yer döndürüldüğünde, yer kimliği, söz konusu yerle ilgili ek ayrıntılar (ör. tam adres, telefon numarası, kullanıcı puanı ve yorumlar) istemek için kullanılabilir.
Yer Ayrıntıları İstekleri
Yer Ayrıntıları, hizmetin getDetails()
yöntemine yapılan bir çağrıyla 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 yer verisi türlerini 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 kodunu ve google.maps.places.PlaceResult
nesnesini işlemesi gereken bir geri çağırma yöntemi 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); } }
Alanlar (Yer ayrıntıları)
fields
parametresi bir dize dizisi (alan adları) alır.
Döndürülecek yer veri 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ılmıştır: Temel, Kişi ve Atmosfer. Temel alanlar taban fiyat ü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 göz atın. İstek yapılmasa da ilişkilendirmeler (html_attributions
) her aramada döndürülür.
Temel
Temel kategori 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
(desteklenmiyor),
photo
, place_id
, plus_code
, type
,
url
, utc_offset
(Yerler Kitaplığı, Maps JavaScript API'de desteklenmiyor), utc_offset_minutes
,
vicinity
İletişim
İletişim kategorisi aşağıdaki 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 verileri isteklerinin nasıl faturalandırıldığı hakkında daha fazla bilgi için Kullanım ve Faturalandırma başlıklı makaleyi inceleyin.
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 belirlemenize yardımcı olacak hata ayıklama bilgilerini içerebilir. Olası durum değerleri şunlardır:
INVALID_REQUEST
: Bu istek geçersizdi.OK
: Yanıt geçerli bir sonuç içeriyor.OVER_QUERY_LIMIT
: Web sayfası istek kotasını aştı.NOT_FOUND
Baş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. 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şeninin kısaltılmış metinsel adıdır. Örneğin, Alaska eyaletinin bir adres bileşenindelong_name
olarak "Alaska" veshort_name
olarak 2 harfli posta kısaltması olan "AK" bulunabilir.
address_components[]
dizisiyle ilgili aşağıdaki noktalara dikkat edin:- Adres bileşenleri dizisi,
formatted_address
'ten daha fazla bileşen içerebilir. - Dizi,
formatted_address
'e dahil olanlar dışında, adres içeren tüm siyasi varlıkları içermeyebilir. Belirli bir adresi içeren tüm siyasi varlıkları almak için ters coğrafi kodlamayı kullanmalı ve isteğe parametre olarak adresin enlem/boylamını göndermelisiniz. - 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, dizindeki konumunu değiştirebilir. Bileşenin türü değişebilir. Belirli bir bileşen, daha sonraki bir yanıtta eksik olabilir.
business_status
, işletme ise yerin faaliyet durumunu gösterir. Aşağıdaki değerlerden birini içerebilir:OPERATIONAL
CLOSED_TEMPORARILY
CLOSED_PERMANENTLY
business_status
döndürülmez.formatted_address
: Bu yerin kullanıcılar tarafından okunabilen adresi.Bu adres genellikle posta adresiyle aynıdır. Birleşik Krallık gibi bazı ülkelerde, lisanslama kısıtlamaları nedeniyle gerçek posta adreslerinin dağıtılmasına izin verilmediğini unutmayın.
Biçimlendirilmiş adres mantıksal olarak bir veya daha fazla adres bileşeninden oluşur. Örneğin, "111 8. Cadde, New York, NY" adresi şu bileşenlerden oluşur: "111" (bina numarası), "8. Cadde" (rota), "New York" (şehir) ve "NY" (ABD eyaleti).
Biçimlendirilmiş adresi programatik 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
: Numaradan sonra gelen bölgesel kurallara göre biçimlendirilmiş, yerin telefon numarası.geometry
: Yerin geometriyle ilgili bilgileri. 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üntü alanını tanımlar.
permanently_closed
(desteklenmiyor), yerin kalıcı veya geçici olarak kapanıp kapanmadığını belirten bir boole işaretidir (true
değeri).permanently_closed
değerini kullanmayın. Bunun yerine, işletmelerin çalışma durumunu almak içinbusiness_status
plus_code
(Açık Konum Kodu ve artı kodları ile ilgili bölüme bakın) enlem ve boylam koordinatlarından türetilen, bir alanı temsil eden kodlanmış bir konum referansı: derecenin 1/8000'i ile derecenin 1/8000'i (ekvatorda yaklaşık 14 m x 14 m) veya daha küçük bir alan. Plus code'lar, açık adreslerin bulunmadığı yerlerde (binaların numaralandırılmadığı veya sokakların adlandırılmadığı yerlerde) açık adreslerin yerine kullanılabilir.Artı kodu, genel kod ve bileş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
, açık bir konum içeren 6 karakter veya daha uzun bir yerel koddur (CWC8+R9, Mountain View, CA, ABD). Bu içeriği programatik olarak ayrıştırmayın.
html_attributions
: Bu yer sonucu için gösterilecek ilişkilendirme metni.icon
: Bu yerin türünü temsil etmek için kullanılabilecek bir resim kaynağının URL'si.international_phone_number
, yerin telefon numarasını uluslararası standartta içerir. Uluslararası standart, ülke kodunu içerir ve başına artı (+) işareti eklenir. Örneğin, Google'ın Avustralya, Sidney ofisi içininternational_phone_number
değeri+61 2 9374 4000
'dır.name
: Yerin adı.utc_offset
Desteği sonlandırıldı Yerler Kitaplığı, Maps JavaScript API'de bunun yerineutc_offset_minutes
kullanın.utc_offset_minutes
, bu yerin mevcut saat diliminin UTC'den kaç dakikalık fark Örneğin, Avustralya'nın Sidney şehrinde yaz saati geçerliyken bu değer 660 (UTC'den +11 saat) olur. California'da yaz saati geçerli değilken bu değer -480 (UTC'den -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.isOpen
'yi yer ayrıntılarıyla kullanma hakkında bilgi edinmek için bu videoyu izleyin.) , 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 bir açılış dönemi dizisidir. Her dönem şunu içerir:open
, yerin ne zaman açıldığını açıklayan bir gün ve saat nesnesi çifti içerir:day
Pazar gününden itibaren haftanın günlerine karşılık gelen 0-6 arasında bir sayı. Örneğin, 2 Salı anlamına gelir.time
, 24 saatlik hhmm biçiminde bir saat içerebilir (değerler 0000-2359 aralığındadır).time
, yerin saat dilimine göre raporlanır.
close
, yerin ne zaman kapandığını belirten bir gün ve saat nesnesi çifti içerebilir. Not: Bir yer her zaman açık ise yanıttaclose
bölümü bulunmaz. Uygulamalar, her zaman açık özelliğininclose
içermeyen, 0 değerine sahipday
ve 0000 değerine sahiptime
içeren biropen
nokta olarak temsil edilmesini kullanabilir.
weekday_text
, haftanın her günü için biçimlendirilmiş çalışma saatlerini temsil eden yedi dize dizisidir. Yer Ayrıntıları isteğinde birlanguage
parametresi belirtilmişse Yerler Hizmeti, çalışma saatlerini ilgili dile uygun şekilde biçimlendirir ve yerelleştirir. Bu dizindeki öğelerin sırasılanguage
parametresine bağlıdır. Bazı diller haftayı Pazartesi günü, bazıları ise Pazar günü başlatır.
permanently_closed
(desteklenmiyor), yerin kalıcı veya geçici olarak kapanıp kapanmadığını belirten bir boole işaretidir (true
değeri).permanently_closed
değerini kullanmayın. Bunun yerine, işletmelerin çalışma durumunu almak içinbusiness_status
photos[]
:PlacePhoto
nesnesi dizisi.getUrl()
yöntemiyle fotoğraf almak içinPlacePhoto
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 ilişkilendirme 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ılabilen metin tabanlı bir tanımlayıcıdır. Yer kimliğiyle bir yere referans verme hakkında daha fazla bilgi edinin.rating
: Toplu kullanıcı yorumlarına göre 0, 0 ile 5, 0 arasında değişen puan.reviews
en fazla beş yorumdan oluşan bir dizi. Her inceleme birkaç bileşenden oluşur:aspects[]
, her biri tesisin tek bir özelliğine ilişkin puan sağlayan birPlaceAspectRating
nesnesi dizisi içerir. Dizideki ilk nesne birincil görünüm olarak kabul edilir. HerPlaceAspectRating
şu şekilde tanımlanır:type
, derecelendirilmekte olan özelliğin adıdır. Aşağıdaki türler desteklenir:appeal
,atmosphere
,decor
,facilities
,food
,overall
,quality
veservice
.rating
kullanıcının bu özellik için verdiği puan (0 ile 3 arasında)
author_name
yorumu gönderen kullanıcının adı. Anonim yorumlar "Bir Google kullanıcısı" ile ilişkilendirilir. Bir dil parametresi ayarlandıysa "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, ülkeyi veya bölgeyi belirten ikincil etiketi değil, yalnızca ana dil etiketini içerir. Örneğin, tüm İngilizce yorumlar "en-AU" veya "en-UK" gibi değil, "en" olarak etiketlenir.rating
kullanıcının bu yer için verdiği genel puan. Bu, 1 ile 5 arasında bir tam sayıdır.text
kullanıcının yorumu. Google Haritalar ile bir konumu incelerken metin yorumları isteğe bağlı kabul edilir. Bu nedenle, bu alan boş olabilir.
types
Bu yer için bir tür dizisi (ör.["political", "locality"]
veya["restaurant", "lodging"]
). Bu dizi birden fazla değer içerebilir veya boş olabilir. Önceden bildirimde bulunulmaksızın yeni değerler eklenebilir. Desteklenen türlerin listesine bakın.url
: Bu yerin resmi Google sayfasının URL'si. Bu, yerle ilgili en iyi bilgileri içeren Google'a ait sayfadır. Uygulamalar, bu sayfayı kullanıcıya yerle ilgili ayrıntılı sonuçlar gösteren tüm ekranlara bağlamalı veya yerleştirmelidir.vicinity
: İl/ilçe, posta kodu veya ülke bilgileri hariç olmak üzere, yerin sokak adı, bina numarası ve mahallesi dahil olmak üzere basitleştirilmiş adresi. Örneğin, Google'ın Sidney, Avustralya ofisininvicinity
değeri5/48 Pirrama Road, Pyrmont
'dur.vicinity
mülkü yalnızca Yakındakiler Arama için döndürülür.website
, bu yerin yetkili web sitesini (ör. işletmenin ana sayfası) listeler.
Not: Çok boyutlu puanlar tüm konumlarda kullanılamayabilir. Çok az yorum varsa 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 Haritalar'daki bir yere ait 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 önce kimliği aramanız gerekir. Bu kimliği, yer arama veya ayrıntılar isteğinin PlaceResult
bölümünde bulabilirsiniz.
Ardından, Konum Ayrıntıları'nı aramak için bu yer kimliğini kullanabilirsiniz.
Yer kimlikleri, Google Haritalar Platformu Hizmet Şartları'nın 3.2.3(b) numaralı bölümünde belirtilen önbelleğe alma kısıtlamalarından muaftır. Bu nedenle, yer kimliği değerlerini daha sonra kullanmak üzere saklayabilirsiniz. Yer kimliklerini saklamayla ilgili 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ı
Yer Fotoğrafı özelliği, sitenize yüksek kaliteli fotoğraf içerikleri eklemenize olanak tanır. Fotoğraf hizmeti, Yerler ve Google+ Yerel veritabanında depolanan milyonlarca fotoğrafa erişmenizi sağlar. Yer Ayrıntıları isteği kullanarak yer bilgileri aldığınızda, alakalı fotoğraf içerikleri için fotoğraf referansları döndürülür. Yakındakiler Arama ve Metin Arama istekleri, alakalı olduğunda yer başına tek bir fotoğraf referansı da döndürür. Ardından, Fotoğraflar hizmetini kullanarak referans verilen fotoğraflara erişebilir ve resmi uygulamanız için en uygun boyuta yeniden boyutlandırabilirsiniz.
PlacesService
ile ilgili yapılan tüm getDetails()
,
textSearch()
veya
nearbySearch()
istekleri için PlaceResult
nesnesi kapsamında bir PlacePhoto
nesnesi dizisi döndürülür.
Not: Döndürülen fotoğraf sayısı isteğe göre değişir.
- Yakındakiler araması veya metin araması en fazla bir
PlacePhoto
nesnesi döndürür. - Ayrıntılar isteği en fazla on
PlacePhoto
nesnesi döndürür.
PlacePhoto.getUrl()
yöntemini çağırıp geçerli bir PhotoOptions
nesnesi ileterek ilişkili resmin URL'sini isteyebilirsiniz. PhotoOptions
nesnesi, resmin istenen maksimum yüksekliğini ve genişliğini belirtmenize olanak tanır. Hem maxHeight
hem de maxWidth
için bir değer belirtirseniz fotoğraf hizmeti, orijinal en boy oranını korurken resmi iki boyuttan daha küçük olan boyuta yeniden boyutlandırır.
Aşağıdaki kod snippet'i bir yer nesnesini kabul eder ve fotoğraf varsa haritaya bir işaretçi ekler. Varsayılan işaretçi resmi, fotoğrafın küçük bir 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 tarafından eklenen fotoğraflar da dahil olmak üzere çeşitli kaynaklardan alınır. Çoğu durumda bu fotoğraflar ilişkilendirme olmadan kullanılabilir veya gerekli ilişkilendirme, resmin bir parçası olarak eklenir. Ancak döndürülen photo
öğesinde html_attributions
alanında bir değer varsa resmi görüntülediğiniz her yerde ek ilişkilendirmeyi uygulamanıza eklemeniz gerekir.