Genel bakış
Yerler Kitaplığı ve Maps JavaScript API'deki işlevler, uygulamanızın belirli bir alanda (örneğin, haritanın sınırları veya sabit bir noktanın çevresinde) yer alan yerleri (bu API'de tesis, coğrafi konum veya önemli ö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 geri kalan bilgileri otomatik tamamlama doldurur. Daha fazla bilgi için otomatik tamamlama dokümanlarına bakın.
Kullanmaya başlama
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 oluşturduğunuz projede, Google Cloud Console'da Places API'nin etkinleştirildiğinden emin olun.
Etkin API'ler listenizi görüntülemek için:
- Google Cloud Console'a gidin.
- Proje seçin düğmesini tıklayın, ardından Maps JavaScript API için oluşturduğunuz projeyi seçin ve Aç'ı tıklayın.
- Kontrol Paneli'ndeki API listesinde Places API'yi arayın.
- Listede Yerler API'sini görüyorsanız API zaten etkinleştirilmiş demektir. API listede yoksa etkinleştirin:
- 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'ı seçin.
- 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ık yükleniyor
Yerler hizmeti, ana Maps JavaScript API kodundan ayrı olan bağımsız bir kitaplıktır. Bu kitaplıkta yer alan işlevi kullanmak için önce Maps API önyükleme URL'sindeki libraries
parametresini kullanarak bu işlevi yüklemeniz gerekir:
<script async
src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&libraries=places&callback=initMap">
</script>
Daha fazla bilgi için Kitaplıklara Genel Bakış 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 bir API veya SDK'ya 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:- Google Cloud Console'a gidin.
- 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.
- Menü düğmesini
tıklayın ve Google Haritalar Platformu > Kimlik bilgileri'ni seçin.
- Kimlik bilgileri sayfasında, güvenli hale getirmek 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 Haritalar JavaScript API'si hem de Yerler API'si seçeneğini belirleyin.
(API'lerden herhangi biri listede yoksa bu API'yi enable gerekir.)
- 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 için açıklanan politikalara uygun olmalıdır.
Yer Aramaları
Rehber hizmetini kullanarak aşağıdaki türde aramalar yapabilirsiniz:
- Sorgudan Yer Bulma, metin sorgusuna göre (örneğin, bir yerin adı veya adresi) bir yer döndürür.
- Telefon Numarasından Yer Bulma, telefon numarasına göre bir yer döndürür.
- Yakındakiler Arama, kullanıcının konumuna dayalı olarak 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ıları istekleri, kullanıcı yorumları dahil olmak üzere belirli bir yer hakkında daha ayrıntılı bilgiler döndürür.
Döndürülen bilgiler arasında restoranlar, mağazalar ve ofisler gibi kuruluşlar ve adresleri, kasaba ve ş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 yer 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 adres 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 "Main Street". Bu bir yer adı, adres veya işletme 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
(gerekli) 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. Aşağıdakilerden biri olabilir:- LatLngLiteral veya EnlBoy nesne olarak belirtilen enlem/boylam koordinatları grubu
- Dikdörtgen sınırlar (iki enlem/boylam çifti veya EnlBoyBounds nesnesi)
- Enl/lng değerine göre ortalanmış yarıçap (metre cinsinden)
Sonuç nesnesini ve google.maps.places.PlacesServiceStatus
yanıtını işlemek için findPlaceFromQuery()
öğesine bir geri çağırma yöntemi iletmeniz de gerekir.
Aşağıdaki örnekte "Avustralya Modern Sanat Müzesi"nin arandığı ve name
ile geometry
alanlarının yer aldığı 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); } }); }Örneği görüntüleyin
Telefon Numarasından Yer Bulma
Telefon Numarasından Yer Bulma, bir telefon numarası alır ve bir yer döndürür. Telefon Numarasından Yer Bulma isteği oluşturmak için aşağıdaki parametreleri alan PlacesService
findPlaceFromPhoneNumber()
yöntemini çağırın:
phoneNumber
(zorunlu) E.164 biçiminde bir telefon numarası.fields
(gerekli) 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. Şunlardan biri olabilir:- LatLngLiteral veya EnlBoy nesne olarak belirtilen enlem/boylam koordinatları grubu
- Dikdörtgen sınırlar (dört enlem/boylam noktası veya EnlBoyBounds nesnesi)
- Enl/lng değerine göre ortalanmış yarıçap (metre cinsinden)
Sonuç nesnesini ve google.maps.places.PlacesServiceStatus
yanıtını işlemek için findPlaceFromPhoneNumber()
öğesine bir geri çağırma yöntemi iletmeniz de 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ılır: Temel, Kişi ve Atmosfer. Temel alanlar taban ücretle faturalandırılır ve ek ücret gerektirmez. Kişi ve Atmosfer alanları daha yüksek ücretle faturalandırılır. Daha fazla bilgi için fiyatlandırma tablosuna göz atın. Alanın istenip istenmediğine bakılmaksızın, ilişkilendirmeler (html_attributions
) her zaman her aramada döndürülür.
Temel
Temel kategorisinde şu 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 bir 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ıtlarda aynı alanları döndürebilir.
Konum ağırlıklandırmasını ayarlama (Yer Bulma yöntemleri)
Belirli bir bölgedeki Yer Bulma sonuçlarını tercih etmek için locationBias
parametresini kullanın. locationBias
'yi aşağıdaki yöntemlerle ayarlayabilirsiniz:
Belirli bir alanla ilgili yanlılık sonuçları:
locationBias: {lat: 37.402105, lng: -122.081974}
Arama yapmak için dikdörtgen bir alan tanımlayın:
locationBias: {north: 37.41, south: 37.40, east: -122.08, west: -122.09}
Ayrıca LatLngBounds da kullanabilirsiniz.
Belirli bir alan temelinde, arama yapılacak bir yarıçap (metre cinsinden) belirleyin:
locationBias: {radius: 100, center: {lat: 37.402105, lng: -122.081974}}
Yakındaki Arama İstekleri
Yakındaki Arama özelliği, belirli bir alandaki yerleri anahtar kelimeye veya türe göre aramanıza olanak tanır. Yakındaki Arama her zaman bir konum içermelidir. Bu konum, şu iki yöntemden biriyle belirtilebilir:
-
LatLngBounds
. location
özelliği (çemberin merkeziniLatLng
nesnesi olarak belirtir) ile metre cinsinden ölçülen yarıçapın kombinasyonu olarak tanımlanan dairesel alan.
Yakındaki Yerler araması,
PlacesService
'in nearbySearch()
yöntemine çağrıyla başlatılır ve bu yöntem, bir dizi
PlaceResult
nesne döndürür. nearbySearch()
yönteminin, 3.9 sürümünden itibaren search()
yönteminin yerini aldığını unutmayın.
service = new google.maps.places.PlacesService(map); service.nearbySearch(request, callback);
Bu yöntem aşağıdaki alanlara sahip bir istek alır:
- Bu iletişim bilgileri şunlar olabilir:
- Dikdörtgen arama alanını tanımlayan bir
google.maps.LatLngBounds
nesnesi olması gerekenbounds
veya - bir
location
ve birradius
; ilki,google.maps.LatLng
nesnesini alır ve ikincisi, ç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ığındalocation
belirtmeniz gerekir, ancakradius
veyabounds
belirtemezsiniz.
- Dikdörtgen arama alanını tanımlayan bir
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
vemaxPriceLevel
(isteğe bağlı): Sonuçları yalnızca belirtilen aralıktaki yerlerle kısıtlar. Geçerli değerler, dahil olmak üzere 0 (en uygun fiyatlı) ile 4 (en pahalı) arasında değişir.name
Kullanımdan kaldırıldı.keyword
yönergesine eşdeğer. Bu alandaki değerler,keyword
alanındaki değerlerle birleştirilir ve aynı arama dizesinin parçası olarak iletilir.openNow
(isteğe bağlı) — Yerler hizmetinin, sorgu gönderildiği sırada yalnızca iş için açık olan yerleri döndürmesi gerektiğini belirten bir boole değeridir. Bu parametreyi sorgunuza eklerseniz Google Rehber veritabanında çalışma saatlerini belirtmeyen yerler döndürülmez.openNow
öğesinifalse
olarak ayarlamanı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ı önem derecelerine göre sıralar. Sıralamada, belirlenen yarıçap içinde kalan ve eşleşen ancak daha az belirgin olan yerlere kıyasla belirgin yerler tercih edilir. Belirginlik; bir yerin Google dizinindeki sıralamasından, dünya genelinde popülerliğinden ve diğer faktörlerden etkilenebilir.google.maps.places.RankBy.PROMINENCE
belirtildiğinderadius
parametresi gerekir.google.maps.places.RankBy.DISTANCE
. Bu seçenek, sonuçları belirtilenlocation
değerine uzaklıklarına göre artan düzende sıralar (gerekli).RankBy.DISTANCE
belirtirseniz özel birbounds
ve/veyaradius
belirtemeyeceğinizi unutmayın.RankBy.DISTANCE
özelliğini belirttiğinizdekeyword
,name
veyatype
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ş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 nearbySearch()
öğ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', 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 Yerler Metin Arama hizmeti, bir dizeyi temel alarak bir dizi yer hakkında bilgi döndüren bir web hizmetidir. Örneğin, "İstanbul'daki pizzacılar" veya "Ankara yakınındaki ayakkabı mağazaları". Hizmet, metin dizesiyle eşleşen yerlerin bir listesiyle ve ayarlanmış olan tüm konum önyargılarıyla yanıt verir. Arama yanıtında bir yer listesi yer alır. Yanıttaki herhangi bir yer hakkında daha fazla bilgi almak için Yer Ayrıntısı isteği gönderebilirsiniz.
Metin Aramaları, PlacesService
'in 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) Aranacak metin dizesi, örneğin: "restoran" veya "Main Street". Bu bir yer adı, adres veya işletme 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ğindetype
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ş için açık olan yerleri döndürmesi gerektiğini belirten bir boole değeridir. Bu parametreyi sorgunuza eklerseniz Google Rehber veritabanında çalışma saatlerini belirtmeyen yerler döndürülmez.openNow
öğesinifalse
olarak ayarlamanın bir etkisi yoktur.minPriceLevel
vemaxPriceLevel
: Sonuçları yalnızca belirtilen fiyat düzeyindeki yerlerle kısıtlar. Geçerli değerler, 0 (en uygun fiyatlı) ile 4 (en pahalı) arasındakiler (bu değerler dahil) arasındadır.- Bu iletişim bilgileri şunlar olabilir:
bounds
— İçinde arama yapılacak dikdörtgeni tanımlayan birgoogle.maps.LatLngBounds
nesnesi veya- bir
location
veradius
: Birlocation
veradius
parametresi ileterek, sonuçları belirli bir daireye göre etkileyebilirsiniz. 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 birgoogle.maps.LatLng
nesnesini alır ve yarıçap, çemberin yarıçapını metre cinsinden temsil eden basit bir tam sayı alır. İzin verilen maksimum yarıçap 50.000 metredir.
type
: Sonuçları, belirtilen türle eşleşen yerlerle kısıtlar. Yalnızca bir tür belirtilebilir (birden fazla tür sağlanırsa ilk girişten sonraki tüm türler yoksayılır). Desteklenen türlerin listesine bakın.
Sonuç nesnesini ve bir 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çeriyor.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 hiçbir 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 (bir işletme) çalışma durumunu belirtir. 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 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ı ülkelerde lisanslama kısıtlamaları nedeniyle gerçek posta adreslerinin dağıtımına izin verilmediğini hatırlatmak isteriz.
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ı bir şekilde ayrıştırmayın. Bunun yerine, API yanıtının biçimlendirilmiş adres alanına ek olarak içerdiği bağımsız adres bileşenlerini kullanmanız gerekir.
geometry
: Yerin geometrisiyle ilgili bilgiler. Buna aşağıdakiler dahildir:location
, yerin enlem ve boylamını sağlar.viewport
, bu yeri görüntülerken haritadaki tercih edilen görüntü alanını tanımlar.
permanently_closed
(desteği sonlandırıldı), yerin kalıcı olarak mı yoksa geçici olarak mı (true
değeri) kapatıldığını gösteren bir boole işaretidir.permanently_closed
değerini kullanmayın. Bunun yerine, işletmelerin faaliyet durumunu öğrenmek içinbusiness_status
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 ve bir derecenin 1/8.000'i 1/8.000'lik (ekvatorda yaklaşık 14 m x 14 m) veya daha küçük bir alanı temsil eder. Artı kodları, var olmayan (bina numaralandırılmamış veya sokakların adlanmadığı yerlerde) açık adreslerin yerine kullanılabilir.Artı kodu, global kod ve bileşik kod olarak biçimlendirilir:
global_code
, 4 karakterli bir alan kodu ve 6 karakter ya da daha uzun bir yerel koddur (849VCWC8+R9).compound_code
, konumu açıkça belirtilmiş, 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.
html_attributions
: Arama sonuçlarını görüntülerken görüntülemeniz gereken atıflar 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ümPlaceResult
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
, renksiz bir simgenin temel URL'sini (.svg veya .png uzantısı hariç) döndürür.icon_background_color
, yer kategorisi için varsayılan HEX renk kodunu döndürür.name
: Yerin adı.opening_hours
aşağıdaki bilgileri içerebilir:open_now
, yerin ş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 yerineutc_offset_minutes
kullanın).
place_id
, bir yeri benzersiz şekilde tanımlayan metin tanımlayıcısı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
, yerin toplu kullanıcı yorumlarına göre 0,0 ile 5,0 arasındaki puanları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 bildirilmeksizin sunulabilir. Desteklenen türlerin listesine bakın.vicinity
: Yerin il/eyalet, posta kodu veya ülke bilgisi hariç olmak üzere sokak adı, sokak numarası ve yerel bölge gibi basitleştirilmiş bir adresi. Örneğin, Google'ın Sidney, Avustralya ofisininvicinity
değeri5/48 Pirrama Road, Pyrmont
olur.
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.
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ı gösteren bir boole özelliğidir. Ek bir sonuç sayfası olduğundatrue
.- 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.
Sonraki sonuç grubunu görmek için nextPage
numaralı telefonu arayın.
Her sonuç sayfası, bir sonraki sonuç sayfası görüntülenmeden önce görüntülenmelidir. Her aramanın kullanım sınırlarınız kapsamında tek bir istek olarak sayıldığını unutmayın.
Aşağıdaki örnekte, birden fazla arama isteği yayınlayabilmeniz için PlaceSearchPagination
nesnesini yakalamak üzere geri çağırma işlevinizi 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ı bilgiler de döndürebilir. Bir yer arama yanıtında döndürüldükten sonra, söz konusu yer hakkında ek bilgi (ör. tam adres, telefon numarası, kullanıcı puanı ve yorumlar vb.) 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
bilgilerini ve ne tür Yerler verisi döndürüleceğini belirten alanları içeren bir istek alır. Yer kimliğiyle bir yeri referans gösterme hakkında daha fazla bilgi edinin.
Bu işlem, hem google.maps.places.PlacesServiceStatus
yanıtında geçirilen durum kodunu hem de google.maps.places.PlaceResult
nesnesini işlemesi gereken bir geri çağırma yöntemini de alır.
var request = { placeId: 'ChIJN1t_tDeuEmsRUsoyG83frY4', fields: ['name', 'rating', 'formatted_phone_number', 'geometry'] }; service = new google.maps.places.PlacesService(map); service.getDetails(request, callback); function callback(place, status) { if (status == google.maps.places.PlacesServiceStatus.OK) { createMarker(place); } }
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ılır: Temel, Kişi ve Atmosfer. Temel alanlar taban ücretle faturalandırılır ve ek ücret gerektirmez. Kişi ve Atmosfer alanları daha yüksek ücretle faturalandırılır. Daha fazla bilgi için fiyatlandırma tablosuna 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
(kullanımdan kaldırıldı),
photo
, place_id
, plus_code
, type
,
url
, utc_offset
,
, utc_offset_minutes
vicinity
İletişim
Kişi kategorisi aşağıdaki alanları içerir:
formatted_phone_number
, international_phone_number
,
opening_hours
, website
Atmosfer
Atmosfer kategorisi aşağıdaki alanları içerir:
price_level
, rating
, reviews
,
user_ratings_total
Yer alanları hakkında daha fazla bilgi edinin. Yer verisi isteklerinin nasıl faturalandırıldığı hakkında daha fazla bilgi için Kullanım ve Faturalandırma bölümüne bakın.
Yer Ayrıntısı 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 takip etmenize yardımcı olacak hata ayıklama bilgileri 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ş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 hiçbir 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 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ış metin adıdır. Örneğin, Alaska eyaletinin bir adres bileşeninde 2 harfli posta kısaltması kullanılaraklong_name
"Alaska" veshort_name
olarak "AK" kullanılabilir.
address_components[]
dizisiyle ilgili aşağıdaki bilgilere dikkat edin:- Adres bileşenleri dizisi,
formatted_address
seçeneğinden daha fazla bileşen içerebilir. - Dizi,
formatted_address
özelliğindekiler dışında bir adres içeren tüm siyasi varlıkları içermez. Belirli bir adres içeren tüm siyasi varlıkları almak için ters coğrafi kodlamayı kullanmanız ve adresin enlemini/boylamını isteğe bir 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 konumu değiştirebilir. Bileşenin türü değişebilir. Daha sonraki bir yanıtta belirli bir bileşen eksik olabilir.
business_status
, yerin (bir işletme) çalışma durumunu belirtir. 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 çoğu zaman posta adresine eşdeğerdir. Birleşik Krallık gibi bazı ülkelerde lisanslama kısıtlamaları nedeniyle gerçek posta adreslerinin dağıtımına izin verilmediğini hatırlatmak isteriz.
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ı bir şekilde ayrıştırmayın. Bunun yerine, API yanıtının biçimlendirilmiş adres alanına ek olarak içerdiği bağımsız adres bileşenlerini kullanmanız gerekir.
formatted_phone_number
: Yerin, numaranın bölgesel kuralı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 haritadaki tercih edilen görüntü alanını tanımlar.
permanently_closed
(desteği sonlandırıldı), yerin kalıcı olarak mı yoksa geçici olarak mı (true
değeri) kapatıldığını gösteren bir boole işaretidir.permanently_closed
değerini kullanmayın. Bunun yerine, işletmelerin faaliyet durumunu öğrenmek içinbusiness_status
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 ve bir derecenin 1/8.000'i 1/8.000'lik (ekvatorda yaklaşık 14 m x 14 m) veya daha küçük bir alanı temsil eder. Artı kodları, var olmayan (bina numaralandırılmamış veya sokakların adlanmadığı yerlerde) açık adreslerin yerine kullanılabilir.Artı kodu, global kod ve bileşik kod olarak biçimlendirilir:
global_code
, 4 karakterli bir alan kodu ve 6 karakter ya da daha uzun bir yerel koddur (849VCWC8+R9).compound_code
, konumu açıkça belirtilmiş, 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.
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ı biçim ülke kodunu içerir ve önünde artı (+) işareti bulunur. Örneğin, Google'ın Avustralya, Sidney ofisinininternational_phone_number
adresi+61 2 9374 4000
şeklindedir.name
: Yerin adı.utc_offset
Yerler Kitaplığı, Maps JavaScript API'de kullanımdan kaldırıldı; bunun yerineutc_offset_minutes
kullanın.utc_offset_minutes
, bu yerin mevcut saat diliminin UTC ile saat arasındaki dakika sayısını içerir. Örneğin, Avustralya'nın Sidney şehrinde yaz saati uygulaması için bu süre 660 (UTC'ye göre +11 saat), Kaliforniya'da yaz saati dışında kalan yerler için -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
öğesinin Yer Ayrıntıları ile 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ı sağlar. Ö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 raporlanır.
close
, yerin ne zaman kapandığını açıklayan bir çift gün ve saat nesnesi içerebilir. Not: Bir yer her zaman açık ise yanıttaclose
bölümü yer almaz. Uygulamalar, her zaman açık olacak şekilde,day
değerini 0 vetime
değerini içeren veclose
değerini içermeyen biropen
dönemi olarak temsil edilebilir.
weekday_text
, haftanın her günü için biçimlendirilmiş çalışma saatlerini temsil eden yedi dizeden oluşan bir dizidir. Yer Ayrıntıları isteğinde birlanguage
parametresi belirtildiyse 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
(desteği sonlandırıldı), yerin kalıcı olarak mı yoksa geçici olarak mı (true
değeri) kapatıldığını gösteren bir boole işaretidir.permanently_closed
değerini kullanmayın. Bunun yerine, işletmelerin faaliyet durumunu öğrenmek içinbusiness_status
kullanın.photos[]
:PlacePhoto
nesneden oluşan dizi.PlacePhoto
,getUrl()
yöntemiyle fotoğraf elde etmek için 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 bir şekilde tanımlayan ve Yer Ayrıntıları isteği aracılığıyla yer hakkında bilgi almak için kullanılabilecek metin tanımlayıcısı. 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ı.reviews
- beş yoruma kadar bir dizi. Her yorum birkaç bileşenden oluşur:aspects[]
, her biri tesisin tek bir özelliğinin derecelendirmesini sağlayanPlaceAspectRating
nesne dizisi içerir. Dizideki ilk nesne, birincil en olarak kabul edilir. Her birPlaceAspectRating
şu şekilde tanımlanır:type
Derecelendirilen özelliğin adı. Şu türler desteklenir:appeal
,atmosphere
,decor
,facilities
,food
,overall
,quality
veservice
.rating
: Kullanıcının bu özellikle ilgili puanını 0 ile 3 arasında alın.
author_name
yorumu gönderen kullanıcının adı. Anonim yorumlar "Bir Google kullanıcısı" adı altında verilir. Bir dil parametresi ayarlandıysa "A 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" olarak değil, "en" olarak etiketlenir.- Kullanıcının bu yerle ilgili genel puanı
rating
. Bu, 1 ile 5 arasında bir tam sayıdır. text
: Kullanıcı yorumu Google Rehber ile bir konum incelerken, metin yorumları isteğe bağlı olarak 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 bildirilmeksizin sunulabilir. Desteklenen türlerin listesine bakın.url
: Bu yerin resmi Google sayfasının URL'si. Bu, Google'a ait olan ve yer hakkında mevcut en iyi bilgileri içeren sayfadır. Uygulamalar, kullanıcıya yerle ilgili ayrıntılı sonuçlar gösteren herhangi bir ekrana bu sayfaya bağlantı vermeli veya bu sayfayı yerleştirmelidir.vicinity
: Yerin il/eyalet, posta kodu veya ülke bilgisi hariç olmak üzere sokak adı, sokak numarası ve yerel bölge gibi basitleştirilmiş bir adresi. Örneğin, Google'ın Sidney, Avustralya ofisininvicinity
değeri5/48 Pirrama Road, Pyrmont
olur.vicinity
özelliği yalnızca Yakındaki Arama için döndürülür.website
, bu yerle ilgili 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-5,0 ölçeğinde eski bir puan bulunur (varsa) veya hiç puan verilmez.
Yer Kimliğiyle Bir Yere Referans Verme
Yer kimliği, Google Haritalar'da bir yere verilen benzersiz 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, Yer Ayrıntıları araması yapmak için bu yer kimliğini kullanabilirsiniz.
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. Böylece, 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 kalitede 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ıları isteğini kullanarak yer bilgisi aldığınızda, alakalı fotoğraf içeriğiyle ilgili fotoğraf referansları döndürülür. Yakındaki Arama ve Metin Arama istekleri de ilgili olduğunda yer başına tek bir fotoğraf referansı döndürür. Fotoğraflar hizmetini kullanarak referans verilen fotoğraflara erişebilir ve resmi uygulamanız için optimum boyuta ayarlayabilirsiniz.
Bir PlacesService
öğesine yönelik 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: İade edilen fotoğraf sayısı isteğe göre değişir.
- Yakındaki Arama veya Metin Arama 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ş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ı olacak şekilde 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 sürümüyle değiştirilir.
function createPhotoMarker(place) { var photos = place.photos; if (!photos) { return; } var marker = new google.maps.Marker({ map: map, position: place.geometry.location, title: place.name, icon: photos[0].getUrl({maxWidth: 35, maxHeight: 35}) }); }
Fotoğraf hizmeti tarafından döndürülen fotoğraflar, işletme sahipleri ve kullanıcıların katkıda bulunduğu fotoğraflar da dahil olmak üzere çeşitli kaynaklardan alınır. Çoğu durumda, bu fotoğraflar atıf olmadan kullanılabilir veya gerekli atıf resmin bir parçası olarak eklenir. Ancak döndürülen photo
öğesi html_attributions
alanında bir değer içeriyorsa resmi görüntülediğiniz her yerde bu ek ilişkilendirmeyi uygulamanıza eklemeniz gerekir.