Yakında Arama (Yeni) istek bir veya daha fazla yer türü alır ve belirtilen alanı temsil eder. Bir veya daha fazla veri türü belirten alan maskesi gereklidir. Yakındaki Arama (Yeni) yalnızca POST isteklerini destekler.
API Gezgini, API'yi ve sunulan API'yi tanıyabilmeniz için canlı isteklerde bulunmanızı sağlar. API seçenekleri:
Deneyin.Etkileşimli demo'yu tıklayın.
Yakındaki Arama (Yeni) istekleri
Yakındaki Arama (Yeni) isteği, form:
https://places.googleapis.com/v1/places:searchNearby
JSON istek gövdesindeki veya POST isteği. Örneğin:
curl -X POST -d '{ "includedTypes": ["restaurant"], "maxResultCount": 10, "locationRestriction": { "circle": { "center": { "latitude": 37.7937, "longitude": -122.3965}, "radius": 500.0 } } }' \ -H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \ -H "X-Goog-FieldMask: places.displayName" \ https://places.googleapis.com/v1/places:searchNearby
Yakındaki Arama (Yeni) yanıtları
Yakındaki Arama (Yeni), Yanıt olarak JSON nesnesi. Yanıtta:
places
dizisi, eşleşen tüm yerleri içerir.- Dizideki her yer bir
Place
nesnesini tanımlayın.Place
nesnesi, tek bir öğe hakkında ayrıntılı bilgiler içeriyor yer. - İstekte iletilen FieldMask, alanların listesini belirtir
Place
nesnesinde döndürülür.
JSON nesnesinin tamamı aşağıdaki biçimdedir:
{ "places": [ { object (Place) } ] }
Gerekli parametreler
-
FieldMask
Bir yanıt alanı maskesi oluşturun. URL parametresini kullanarak yanıt alanı maskesini yönteme iletin
$fields
veyafields
ya da HTTP üstbilgisi kullanarakX-Goog-FieldMask
. Yanıtta varsayılan bir döndürülen alan listesi yok. Alan maskesini çıkarırsanız yöntem hata döndürür.Alan maskeleme, bir kullanıcının sizden başka bir alan adına Böylece, gereksiz işlem süresini ve faturalandırma ücretleri.
Döndürülecek yer verisi türlerinin virgülle ayrılmış listesini belirtin. Örneğin, Google Etiket Yöneticisi'ni kullanarak yerin görünen adını ve adresini alın.
X-Goog-FieldMask: places.displayName,places.formattedAddress
.Tüm alanları almak için
*
öğesini kullanın.X-Goog-FieldMask: *
.Aşağıdaki alanlardan birini veya daha fazlasını belirtin:
Aşağıdaki alanlar Yakındaki Arama (Temel) SKU'sunu tetikler:
places.accessibilityOptions
,places.addressComponents
,places.adrFormatAddress
,places.attributions
,places.businessStatus
,places.displayName
,places.formattedAddress
,places.googleMapsUri
,places.iconBackgroundColor
,places.iconMaskBaseUri
,places.id
,places.location
,places.name
*,places.photos
,places.plusCode
,places.primaryType
,places.primaryTypeDisplayName
,places.shortFormattedAddress
,places.subDestinations
,places.types
,places.utcOffsetMinutes
,places.viewport
*places.name
alanı, yer kaynak adı bilgisini içerir şu biçimde olabilir:places/PLACE_ID
.places.displayName
hesabını kullan yerin metin adına erişmek için tıklayın.Aşağıdaki alanlar Yakında Arama (Gelişmiş) SKU'sunu tetikler:
places.currentOpeningHours
,places.currentSecondaryOpeningHours
,places.internationalPhoneNumber
,places.nationalPhoneNumber
,places.priceLevel
,places.rating
,places.regularOpeningHours
,places.regularSecondaryOpeningHours
,places.userRatingCount
,places.websiteUri
Aşağıdaki alanlar Yakındaki Arama (Tercih Edilen) SKU'sunu tetikler:
places.allowsDogs
,places.curbsidePickup
,places.delivery
,places.dineIn
,places.editorialSummary
,places.evChargeOptions
,places.fuelOptions
,places.goodForChildren
,places.goodForGroups
,places.goodForWatchingSports
,places.liveMusic
,places.menuForChildren
,places.parkingOptions
,places.paymentOptions
,places.outdoorSeating
,places.reservable
,places.restroom
,places.reviews
,places.servesBeer
,places.servesBreakfast
,places.servesBrunch
,places.servesCocktails
,places.servesCoffee
,places.servesDessert
,places.servesDinner
,places.servesLunch
,places.servesVegetarianFood
,places.servesWine
,places.takeout
-
locationRestriction
Merkez noktası ve metre cinsinden yarıçapla tanımlanan, çember şeklinde belirtilen, aranacak bölge. Yarıçap, 0,0 ile 50.000,0 (her ikisi de dahil) arasında olmalıdır. Varsayılan yarıçap 0,0'dır. Şunu yapmalısınız: bu değeri isteğinizde 0,0'dan büyük bir değere ayarlayın.
Örneğin:
"locationRestriction": { "circle": { "center": { "latitude": 37.7937, "longitude": -122.3965 }, "radius": 500.0 } }
İsteğe bağlı parametreler
-
includeTypes/excludedTypes, includePrimaryTypes/excludedPrimaryTypes
Türlerden bir tür listesi belirtebilmenizi sağlar. Filtreleme için kullanılan Tablo A en iyi yoludur. Her bir tür kısıtlama kategorisinde en fazla 50 tür belirtilebilir.
Bir yerin, türlerden yalnızca tek bir birincil türü olabilir Şununla ilişkili Tablo A: somut olarak ortaya koyar. Örneğin, birincil tür
"mexican_restaurant"
veya"steak_house"
. Tekliflerinizi otomatikleştirmek ve optimize etmek için Sonuçları filtrelemek içinincludedPrimaryTypes
veexcludedPrimaryTypes
bir yerin birincil türü olabilir.Bir yer, türlerden birden fazla tür değerine de sahip olabilir A Tablosu görüntülenebilir. Örneğin, bir restoran aşağıdaki türlere sahip olabilir:
"seafood_restaurant"
,"restaurant"
,"food"
,"point_of_interest"
,"establishment"
.includedTypes
hesabını kullan veexcludedTypes
ile ilişkili türler listesindeki sonuçları filtrelemek için bir yer."restaurant"
veya"hotel"
, yanıt, belirtilen öğedir. Örneğin,"restaurant"
Böylece yanıt, birincil türün"restaurant"
, ancak yanıt daha spesifik yerler de içerebilir birincil tür, örneğin"chinese_restaurant"
veya"seafood_restaurant"
.Bir arama birden çok tür kısıtlamasıyla belirtilirse, yalnızca yerler için tüm kısıtlamaları karşılayanlar döndürülür. Örneğin,
{"includedTypes": ["restaurant"], "excludedPrimaryTypes": ["steak_house"]}
, iade edilen yerler,"restaurant"
ile ilgili hizmet sağlıyor ancak ağırlıklı olarak faaliyet göstermiyor"steak_house"
olarak.includedTypes
Tablo A'dan aranacak yer türlerinin virgülle ayrılmış listesi. Bu parametre eklenmezse her türden yer döndürülür.
excludedTypes
Hem
includedTypes
("school"
gibi) hem deexcludedTypes
("primary_school"
gibi) ve ardından yanıt,"school"
olarak sınıflandırılan ancak"primary_school"
. Yanıt, şunlardan en az biriyle eşleşen yerleri içerir:includedTypes
veexcludedTypes
hiçbiri.Çakışan türler varsa (örneğin, her iki
includedTypes
öğesinde de görünen bir tür) veexcludedTypes
iseINVALID_REQUEST
hatası döndürülür.includedPrimaryTypes
Dahil edilecek Tablo A'daki birincil yer türlerinin virgülle ayrılmış listesi anlamına gelir.
excludedPrimaryTypes
Hariç tutulacak birincil yer türlerinin virgülle ayrılmış listesi Tablo A'dan elde edebilirsiniz.
Çakışan birincil türler varsa (örneğin, her ikisinde de görünen bir tür)
includedPrimaryTypes
veexcludedPrimaryTypes
,INVALID_ARGUMENT
hata döndürüldü. -
languageCode
Sonuçların döndürüleceği dil.
- Desteklenen dillerin listesini inceleyin. Google sıklıkla , desteklenen dilleri güncellediğinden bu liste tam kapsamlı olmayabilir.
languageCode
sağlanmazsa API varsayılan olaraken
olur. Eğer geçersiz bir dil kodu belirtirseniz API,INVALID_ARGUMENT
hatası döndürür. hatası.- API, hem kullanıcı hem de kullanıcı tarafından okunabilen bir açık adres sağlamak için elinden geleni yapar: yerel kullanıcılar. Bu hedefe ulaşmak için yerel dildeki açık adresleri, kullanıcı tarafından okunabilen bir alfabede metne dönüştürülerek dili'ne dokunun. Diğer tüm adresler tercih edilen dilde döndürülür. Adres bileşenleri tümü, ilk bileşenden seçilen aynı dilde döndürülür.
- Bir ad, tercih edilen dilde sunulmuyorsa API en yakın eşleşmeyi kullanır.
- Tercih edilen dilin, API'nin seçtiği sonuç grubu üzerinde küçük bir etkisi vardır. sıralanıyor. Coğrafi kodlayıcı kısaltmaları yorumlar Örneğin, sokak türlerinin kısaltmaları veya eş anlamlıları gibi, dile bağlı olarak başka bir dilde geçerli olmayabilir.
-
maxResultCount
Döndürülecek maksimum yer sonucu sayısını belirtir. Şu değerler arasında olmalıdır: 1 ve 20 (varsayılan) değerleri dahil.
-
rankPreference
Kullanılacak sıralama türü. Bu parametre eklenmezse sonuçlar popülerliğe göre sıralanır. Aşağıdakilerden biri olabilir:
POPULARITY
(varsayılan) Sonuçları popülerliklerine göre sıralar.DISTANCE
Sonuçları uzaklığa göre artan düzende sıralar. belirtilen konum.
-
regionCode
Yanıtı biçimlendirmek için kullanılan bölge kodu, CLDR kodu değerini girin. Varsayılan bir değer yok.
Yanıttaki
formattedAddress
alanının ülke adıregionCode
, ülke koduformattedAddress
öğesinden atlanır. Bu parametrenin, her zaman ülkeyi içerenadrFormatAddress
üzerinde etkisi yoktur. adı veya hiçbir zaman içermeyenshortFormattedAddress
üzerinde.Çoğu CLDR kodu aynıdır. ISO 3166-1 kodları, bazı önemli istisnalarla birlikte. Örneğin, Birleşik Krallık'ın ccTLD'si "uk" (.co.uk), ISO 3166-1 kodu "gb" ise (teknik olarak "Büyük Britanya ve Kuzey İrlanda Birleşik Krallığı"). Parametre, geçerli yasalara göre sonuçları etkileyebilir.
Yakındaki Arama (Yeni) örnekleri
Belirli türdeki yerleri bulma
Aşağıdaki örnekte, görüntülü reklam ağı için Yakındaki Arama (Yeni) isteği gösterilmektedir
circle
ile tanımlanan, 500 metrelik bir yarıçaptaki tüm restoranların adları:
curl -X POST -d '{ "includedTypes": ["restaurant"], "maxResultCount": 10, "locationRestriction": { "circle": { "center": { "latitude": 37.7937, "longitude": -122.3965}, "radius": 500.0 } } }' \ -H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \ -H "X-Goog-FieldMask: places.displayName" \ https://places.googleapis.com/v1/places:searchNearby
X-Goog-FieldMask
üstbilgisinin, yanıtın
şu veri alanlarını içerir: places.displayName
.
Yanıt
Böylece şu biçimde olur:
{ "places": [ { "displayName": { "text": "La Mar Cocina Peruana", "languageCode": "en" } }, { "displayName": { "text": "Kokkari Estiatorio", "languageCode": "en" } }, { "displayName": { "text": "Harborview Restaurant & Bar", "languageCode": "en" } }, ... }
Ek bilgiler döndürmek için alan maskesine daha fazla veri türü ekleyin.
Örneğin, places.formattedAddress,places.types,places.websiteUri
yanıtta restoranın adresi, türü ve web adresi:
curl -X POST -d '{ "includedTypes": ["restaurant"], "maxResultCount": 10, "locationRestriction": { "circle": { "center": { "latitude": 37.7937, "longitude": -122.3965}, "radius": 500.0 } } }' \ -H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \ -H "X-Goog-FieldMask: places.displayName,places.formattedAddress,places.types,places.websiteUri" \ https://places.googleapis.com/v1/places:searchNearby
Yanıt şu biçimde olur:
{ "places": [ { "types": [ "seafood_restaurant", "restaurant", "food", "point_of_interest", "establishment" ], "formattedAddress": "PIER 1 1/2 The Embarcadero N, San Francisco, CA 94105, USA", "websiteUri": "http://lamarsf.com/", "displayName": { "text": "La Mar Cocina Peruana", "languageCode": "en" } }, { "types": [ "greek_restaurant", "meal_takeaway", "restaurant", "food", "point_of_interest", "establishment" ], "formattedAddress": "200 Jackson St, San Francisco, CA 94111, USA", "websiteUri": "https://kokkari.com/", "displayName": { "text": "Kokkari Estiatorio", "languageCode": "en" } }, ... }
Farklı türde yerler bulun
Aşağıdaki örnekte
şehrinin 1000 metre yarıçapında bulunan tüm marketlerin ve alkollü içecek mağazalarının adlarını
belirtilen circle
:
curl -X POST -d '{ "includedTypes": ["liquor_store", "convenience_store"], "maxResultCount": 10, "locationRestriction": { "circle": { "center": { "latitude": 37.7937, "longitude": -122.3965 }, "radius": 1000.0 } } }' \ -H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \ -H "X-Goog-FieldMask: places.displayName,places.primaryType,places.types" \ https://places.googleapis.com/v1/places:searchNearby. Bu örnekte, alan maskesine
places.primaryType
ve places.types
eklenir
Böylece yanıtta her yer hakkında tür bilgileri yer alacak ve böylece
uygun bir yer olup olmadığını kontrol edin.
Bir yer türünü aramadan hariç tutma
Aşağıdaki örnekte tüm yerler için Yakın Arama (Yeni) isteği gösterilmektedir
"school"
türünde, "primary_school"
türündeki tüm yerler hariç tutularak sonuçlar sıralanır
mesafeye göre:
curl -X POST -d '{ "includedTypes": ["school"], "excludedTypes": ["primary_school"], "maxResultCount": 10, "locationRestriction": { "circle": { "center": { "latitude": 37.7937, "longitude": -122.3965 }, "radius": 1000.0 } }, "rankPreference": "DISTANCE" }' \ -H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \ -H "X-Goog-FieldMask: places.displayName" \ https://places.googleapis.com/v1/places:searchNearby
Bir bölgenin yakınındaki tüm yerleri arama (mesafeye göre sıralama)
Aşağıdaki örnekte yerler için Yakındaki Arama (Yeni) isteği gösterilmektedir
bir noktaya yakınlaştık. Bu örnekte rankPreference
parametresini kullanabilirsiniz:
curl -X POST -d '{ "maxResultCount": 10, "rankPreference": "DISTANCE", "locationRestriction": { "circle": { "center": { "latitude": 37.7937, "longitude": -122.3965 }, "radius": 1000.0 } } }' \ -H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \ -H "X-Goog-FieldMask: places.displayName" \ https://places.googleapis.com/v1/places:searchNearby
Deneyin!
API Gezgini sayesinde örnek isteklerde bulunabilirsiniz. hakkında da bilgi edineceksiniz.
- API simgesini,
sekmesini tıklayın.
- İsteğe bağlı olarak Standart parametreleri göster'i genişletin ve
fields
parametresi alan maskesine benzer. - İsteğe bağlı olarak İstek gövdesini düzenleyin.
- Yürüt düğmesini seçin. Pop-up pencerede, istekte bulunmak için kullanmak istediğiniz hesabı seçin.
API Gezgini panelinde genişlet simgesini seçin, API Gezgini penceresini genişletmek için
tuşlarına basın.