Yakınlarda Arama (Yeni) isteği, bölgenin girişi olarak kabul edilir
enlem ve boylamla tanımlanan bir daire olarak belirtilen arama
çemberin merkez noktasının ve yarıçapın metre cinsinden koordinatları. İlgili içeriği oluşturmak için kullanılan
isteği, her biri bir
Place
nesnesini ifade eder.
Varsayılan olarak yanıt, arama alanı içindeki her türden yeri içerir. İsterseniz bir yer türleri listesi belirterek yanıtı filtreleyebilirsiniz. yanıta açıkça dahil etme veya yanıttan hariç tutma Örneğin, yanıta yalnızca "restoran" türündeki yerleri dahil etmek, "fırın" ve "kafe" olabilir veya "okul" türündeki tüm yerleri hariç tutabilirsiniz.
Yakındaki Arama (Yeni) istekleri
Şu numarayı arayarak Yakında Arama (Yeni) isteğinde bulun:
PlacesClient.searchNearby
doğru
SearchNearbyRequest
nesnesini tanımlayın.
SearchNearbyRequest
nesnesi, gerekli ve isteğe bağlı tüm
parametrelerini kullanır. Gerekli parametreler şunları içerir:
Place
nesnesinde döndürülecek alanların listesi. Bu, kullanabilirsiniz. Alan listesinde en az bir alan belirtmezseniz veya alan listesini çıkarırsanız çağrı bir hata döndürür.- Arama alanı için konum kısıtlaması, bir enlem/boylam çifti ve metre cinsinden yarıçap değeri.
Bu örnek yakındaki arama isteği, yanıt Place
nesnelerinin
Her biri için Place.Field.ID
ve Place.Field.NAME
yer alanlarını içermelidir
Place
nesnesi gösterilir. Ayrıca yanıtı yalnızca
"restoran" türündeki yerleri döndür ancak "kafe" gibi yerleri hariç tutar
"pizza_restoran" ve "american_Restaurant" gibi içerikler de dahildir.
// Define a list of fields to include in the response for each returned place. final List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.NAME); // Define the search area as a 1000 meter diameter circle in New York, NY. LatLng center = new LatLng(40.7580, -73.9855); CircularBounds circle = CircularBounds.newInstance(center, /* radius = */ 1000); // Define a list of types to include. final List<String> includedTypes = Arrays.asList("restaurant", "cafe"); // Define a list of types to exclude. final List<String> excludedTypes = Arrays.asList("pizza_restaurant", "american_restaurant"); // Use the builder to create a SearchNearbyRequest object. final SearchNearbyRequest searchNearbyRequest = SearchNearbyRequest.builder(/* location restriction = */ circle, placeFields) .setIncludedTypes(includedTypes) .setExcludedTypes(excludedTypes) .setMaxResultCount(10) .build()); // Call placesClient.searchNearby() to perform the search. // Define a response handler to process the returned List of Place objects. placesClient.searchNearby(searchNearbyRequest) .addOnSuccessListener(response -> { List<Place> places = response.getPlaces(); });.
Yakındaki Arama (Yeni) yanıtları
İlgili içeriği oluşturmak için kullanılan
SearchNearbyResponse
class , bir arama isteğinden gelen yanıtı temsil eder. SearchNearbyResponse
nesne şunu içerir:
- Eşleşen tüm yerleri temsil eden
Place
nesne listesi ve bir tane Eşleşen yer başınaPlace
nesne. - Her
Place
nesnesi yalnızca alan listesinde tanımlanan alanları içerir emin olun.
Örneğin, istekte bir alan listesini şu şekilde tanımladınız:
// Define a list of fields to include in the response for each returned place. final List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.NAME);
Bu alan listesi, yanıttaki her Place
nesnesinin yalnızca
eşleşen her yerin yer kimliğini ve adını girin. Ardından, Place.getId()
ve her Place
nesnesinde bu alanlara erişmek için Place.getName()
yöntem.
Bir Place
nesnesindeki verilere erişme ile ilgili daha fazla örnek için Yere Erişme konusuna bakın
nesne veri alanlarına dikkat edin.
Gerekli parametreler
Şunu kullanın:
SearchNearbyRequest
nesnesini tanımlayın.
Alan listesi
Yer ayrıntılarını istediğinizde, döndürülecek verileri Bu yer için alan maskesi olarak
Place
nesnesi. Alan maskesini tanımlamak için şuradan bir değer dizisi:Place.Field
SearchNearbyRequest
nesnesine ekler. Alan maskeleme, iyi bir tasarım uygulamasıdır Böylece gereksiz veriler istemeyeceğinizden emin olursunuz. Bu da Gereksiz işlem süresi ve faturalandırma ücretleri.Aşağıdaki alanlardan birini veya daha fazlasını belirtin:
Aşağıdaki alanlar Yakında Arama'yı tetikler (Temel) SKU:
Place.Field.ADDRESS_COMPONENTS
,Place.Field.BUSINESS_STATUS
,Place.Field.ADDRESS
,Place.Field.ICON_BACKGROUND_COLOR
,Place.Field.ICON_URL
,Place.Field.LAT_LNG
,Place.Field.PHOTO_METADATAS
,Place.Field.PLUS_CODE
,Place.Field.ID
,Place.Field.NAME
,Place.Field.TYPES
,Place.Field.UTC_OFFSET
,Place.Field.VIEWPORT
,Place.Field.WHEELCHAIR_ACCESSIBLE_ENTRANCE
Aşağıdaki alanlar Yakında Arama'yı tetikler (Gelişmiş) SKU:
Place.Field.CURRENT_OPENING_HOURS
,Place.Field.SECONDARY_OPENING_HOURS
,Place.Field.PHONE_NUMBER
,Place.Field.PRICE_LEVEL
,Place.Field.RATING
,Place.Field.OPENING_HOURS
,Place.Field.USER_RATINGS_TOTAL
,Place.Field.WEBSITE_URI
Aşağıdaki alanlar Yakında Arama'yı tetikler (Tercih edilen) SKU:
Place.Field.CURBSIDE_PICKUP
,Place.Field.DELIVERY
,Place.Field.DINE_IN
,Place.Field.EDITORIAL_SUMMARY
,Place.Field.RESERVABLE
,Place.Field.REVIEWS
,Place.Field.SERVES_BEER
,Place.Field.SERVES_BREAKFAST
,Place.Field.SERVES_BRUNCH
,Place.Field.SERVES_DINNER
,Place.Field.SERVES_LUNCH
,Place.Field.SERVES_VEGETARIAN_FOOD
,Place.Field.SERVES_WINE
,Place.Field.TAKEOUT
Alan listesi parametresini ayarlamak için
setPlaceFields()
yöntemini kullanarakSearchNearbyRequest
nesnesini oluşturabilirsiniz.Aşağıdaki örnekte, iki alan değerinden oluşan bir liste tanımlayarak Bir istek tarafından döndürülen
Place
nesnesi,Place.Field.ID
vePlace.Field.NAME
alan:
// Define a list of fields to include in the response for each returned place. final List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.NAME);
Konum kısıtlaması
CEVAP
LocationRestriction
daire olarak belirtilen, aranacak bölgeyi tanımlayan, merkez noktası ve metre cinsinden yarıçap. Yarıçap şundan büyük olmalıdır: 0,0 ve küçük veya eşittir 50000.0 olarak devam eder. Çok küçük bir yarıçap belirtmenin, yanıt olarakZERO_RESULTS
değerini döndür.Konum kısıtlaması parametresini ayarlamak için
setLocationRestriction()
yöntemini kullanarakSearchNearbyRequest
nesnesini oluşturabilirsiniz.
İsteğe bağlı parametreler
Şunu kullanın:
SearchNearbyRequest
nesnesini tanımlayın.
-
Türler ve birincil türler
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"
gibi genel bir birincil tür belirttiğinizde veya"hotel"
ise yanıt daha fazla belirtilenden farklı bir birincil tür olmalıdır. Örneğin, Birincil tür olarak"restaurant"
yer almalıdır. Yanıt daha sonra birincil türü"restaurant"
olan yerleri içerir, ancak yanıt, ö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 = Arrays.asList("restaurant")
veexcludedPrimaryTypes = Arrays.asList("steak_house")
, iade edilen yerler"restaurant"
ile ilgili hizmet sağlıyor ancak öncelikli olarak faaliyet göstermiyor"steak_house"
olarak kayıtlı.includedTypes
veexcludedTypes
kullanımının nasıl kullanılacağına ilişkin bir örnek için bkz. Yakında Arama (Yeni) istekleri.Dahil edilen türler
Şu kaynaktan yer türlerinin bir listesi: Aranacak Tablo A'yı tıklayın. Bu parametre eklenmezse her türden yer döndürülür.
Dahil edilen türler parametresini ayarlamak için,
SearchNearbyRequest
nesnesini oluştururkensetIncludedTypes()
yöntemini çağırın.Hariç tutulan türler
Şu kaynaktan yer türlerinin bir listesi: Tablo A arayın.
Hem
includedTypes
(örneğin,"school"
) 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.Hariç tutulan türler parametresini ayarlamak için,
SearchNearbyRequest
nesnesini oluştururkensetExcludedTypes()
yöntemini çağırın.Dahil edilen birincil türler
Şu konumdaki birincil yer türlerinin bir listesi: Dahil edilecek Tablo A anlamına gelir.
Dahil edilen birincil türler parametresini ayarlamak için,
SearchNearbyRequest
nesnesini oluştururkensetIncludedPrimaryTypes()
yöntemini çağırın.Hariç tutulan birincil türler
Şu konumdaki birincil yer türlerinin bir listesi: Hariç tutulacak Tablo A 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ü.Hariç tutulan birincil türler parametresini ayarlamak için
SearchNearbyRequest
nesnesini oluştururkensetExcludedPrimaryTypes()
yöntemini çağırın. -
Maksimum sonuç sayısı
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.
Maksimum sonuç sayısı parametresini ayarlamak için
SearchNearbyRequest
nesnesini oluştururkensetMaxResultCount()
yöntemini çağırın. -
Sıralama tercihi
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.
Sıralama tercihi parametresini ayarlamak için
SearchNearbyRequest
nesnesini oluştururkensetRankPreference()
yöntemini çağırın. -
Bölge kodu
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.Ç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.
Bölge kodu parametresini ayarlamak için
SearchNearbyRequest
nesnesini oluştururkensetRegionCode()
yöntemini çağırın.
İlişkilendirmeleri uygulamanızda gösterme
Uygulamanız,
PlacesClient
(ör. fotoğraflar ve yorumlar) uygulamada, gerekli ilişkilendirmeler de gösterilmelidir.
Daha fazla bilgi için Aşağıdaki Yerler SDK'sına ilişkin Politikalar bölümüne bakın: Android.