Yakındaki Arama (Yeni) isteği, daire şeklinde belirtilen ve dairenin merkez noktasının enlem ve boylam koordinatlarıyla ve metre cinsinden yarıçapla tanımlanan arama bölgesini girdi olarak alır. İstek, belirtilen arama alanı içindeki her biri bir Place
nesnesiyle temsil edilen eşleşen yerlerin bir listesini döndürür.
Varsayılan olarak yanıt, arama alanı içindeki her türden yeri içerir. İsterseniz yanıta açıkça dahil edilecek veya yanıttan hariç tutulacak yer türlerinin listesini belirterek yanıtı filtreleyebilirsiniz. Örneğin, yanıta yalnızca "restoran", "fırın" ve "kafe" türündeki yerleri dahil etmeyi veya "okul" türündeki tüm yerleri hariç tutmayı belirtebilirsiniz.
Yakındaki Arama (Yeni) istekleri
İstek parametrelerini tanımlayan bir SearchNearbyRequest
nesnesi ileterek PlacesClient.searchNearby
yöntemini çağırarak Yakındaki Arama (Yeni) isteğinde bulunun.
SearchNearbyRequest
nesnesi, istek için gerekli ve isteğe bağlı tüm parametreleri belirtir. Gerekli parametreler şunları içerir:
- Alan maskesi olarak da bilinen
Place
nesnesinde döndürülecek alanların listesi. Alan listesinde en az bir alan belirtmezseniz veya alan listesini atlarsanız çağrı bir hata döndürür. - Arama alanı için, metre cinsinden bir enlem/boylam çifti ve yarıçap değeri olarak tanımlanan konum kısıtlaması.
Bu örnek yakındaki arama isteği, yanıt Place
nesnelerinin, arama sonuçlarındaki her Place
nesnesi için Place.Field.ID
ve Place.Field.NAME
yer alanlarını içerdiğini belirtir. Ayrıca yanıtı yalnızca "restoran" ve "kafe" türündeki yerleri döndürecek
ancak "pizza_restoran" ve "american_restoran" türündeki yerleri hariç tutacak şekilde filtreler.
// 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ı
SearchNearbyResponse
sınıfı, bir arama isteğinden gelen yanıtı temsil eder. SearchNearbyResponse
nesnesi şunları içerir:
- Eşleşen yer başına bir
Place
nesnesi olmak üzere, eşleşen tüm yerleri temsil edenPlace
nesnelerin listesi. - Her
Place
nesnesi yalnızca istekte iletilen alan listesiyle tanımlanan alanları içerir.
Ö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ı içerdiği anlamına gelir. Daha sonra her bir Place
nesnesinde bu alanlara erişmek için Place.getId()
ve Place.getName()
yöntemlerini kullanabilirsiniz.
Bir Place
nesnesindeki verilere erişme hakkında daha fazla örnek için Yer nesnesi veri alanlarına erişme konusuna bakın.
Gerekli parametreler
Arama için gerekli parametreleri belirtmek üzere SearchNearbyRequest
nesnesini kullanın.
Alan listesi
Yer ayrıntılarını istediğinizde, bu yerin
Place
nesnesinde döndürülecek verileri alan maskesi olarak belirtmeniz gerekir. Alan maskesini tanımlamak içinPlace.Field
öğesindenSearchNearbyRequest
nesnesine bir değer dizisi iletin. Alan maskeleme, gereksiz veri isteğinde bulunmadığınızdan emin olmak için iyi bir tasarım uygulamasıdır ve gereksiz işleme süresi ve faturalandırma ücretlerinin önlenmesine yardımcı olur.Aşağıdaki alanlardan birini veya daha fazlasını belirtin:
Aşağıdaki alanlar Yakındakilerde Arama (Temel) SKU'sunu tetikler:
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 (Gelişmiş) SKU'sunu tetikler:
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ındakilerde Arama (Tercih Edilen) SKU'sunu tetikler:
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
SearchNearbyRequest
nesnesini oluştururkensetPlaceFields()
yöntemini çağırın.Aşağıdaki örnekte, bir istek tarafından döndürülen
Place
nesnesininPlace.Field.ID
vePlace.Field.NAME
alanlarını içerdiğini belirtmek için iki alan değerinden oluşan bir liste tanımlanmaktadır:
// 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ı
Daire olarak belirtilen, aranacak bölgeyi tanımlayan, merkez noktası ve metre cinsinden yarıçapla tanımlanan
LocationRestriction
nesnesi. Yarıçap, 0,0 ile 50000,0 veya daha küçük bir değer arasında olmalıdır. Çok küçük bir yarıçap belirtmenin yanıt olarakZERO_RESULTS
değerini döndüreceğini unutmayın.Konum kısıtlaması parametresini ayarlamak için
SearchNearbyRequest
nesnesini oluştururkensetLocationRestriction()
yöntemini çağırın.
İsteğe bağlı parametreler
Arama için isteğe bağlı parametreleri belirtmek üzere SearchNearbyRequest
nesnesini kullanın.
-
Türler ve birincil türler
Arama sonuçlarını filtrelemek için kullanılan Tablo A türlerinden bir tür listesi belirtebilmenizi sağlar. Her bir tür kısıtlama kategorisinde en fazla 50 tür belirtilebilir.
Bir yerin kendisiyle ilişkili tek bir birincil türü olabilir Tablo A. Örneğin, birincil tür
"mexican_restaurant"
veya"steak_house"
olabilir. Sonuçları bir yerin birincil türüne göre filtrelemek içinincludedPrimaryTypes
veexcludedPrimaryTypes
özelliklerini kullanın.Bir yer, kendisiyle ilişkili Tablo A türlerinden birden fazla tür değere sahip olabilir. Örneğin bir restoran şu türlere sahip olabilir:
"seafood_restaurant"
,"restaurant"
,"food"
,"point_of_interest"
,"establishment"
. Bir yerle ilişkili türler listesindeki sonuçları filtrelemek içinincludedTypes
veexcludedTypes
özelliklerini kullanın.Bir arama birden çok tür kısıtlamasıyla belirtilirse yalnızca tüm kısıtlamaları karşılayan yerler döndürülür. Örneğin,
includedTypes = Arrays.asList("restaurant")
veexcludedPrimaryTypes = Arrays.asList("steak_house")
belirtirseniz döndürülen yerler"restaurant"
ile ilgili hizmetler sağlar ancak birincil olarak"steak_house"
olarak çalışmaz.includedTypes
veexcludedTypes
kullanımının nasıl kullanılacağına dair bir örnek için Yakında Arama (Yeni) istekleri konusuna bakın.Dahil edilen türler
A tablosunda aranacak yer türlerinin listesi. 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
Aramadan hariç tutulacak A Tablosu'ndaki yer türlerinin listesi.
İstekte hem
includedTypes
("school"
gibi) hem deexcludedTypes
("primary_school"
gibi) değerini belirtirseniz yanıt,"school"
olarak sınıflandırılan ancak"primary_school"
olarak sınıflandırılmayan yerleri içerir. Yanıt,includedTypes
özelliklerinden en az biriyle eşleşen veexcludedTypes
hiçbiriyle eşleşen yerleri içerir.Çakışan türler varsa (ör. hem
includedTypes
hem deexcludedTypes
'da görünen bir tür)INVALID_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
Aramaya dahil edilecek, A Tablosu'ndan alınan birincil yer türlerinin listesi.
Dahil edilen birincil türler parametresini ayarlamak için,
SearchNearbyRequest
nesnesini oluştururkensetIncludedPrimaryTypes()
yöntemini çağırın.Hariç tutulan birincil türler
Aramadan hariç tutulacak A Tablosu'ndaki birincil yer türlerinin listesi.
Hem
includedPrimaryTypes
hem deexcludedPrimaryTypes
içinde görünen bir tür gibi çakışan birincil türler varsaINVALID_ARGUMENT
hatası döndürülür.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. 1-20 (varsayılan) dahil bu değerler arasında olmalıdır.
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ı, belirtilen konuma olan mesafelerine göre artan düzende sıralar.
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. İki karakterli CLDR kodu değeri olarak belirtilir. Varsayılan bir değer yok.
Yanıttaki
formattedAddress
alanının ülke adıregionCode
ile eşleşirse ülke koduformattedAddress
öğesinden çıkarılır.Çoğu CLDR kodu, bazı önemli istisnalar dışında, ISO 3166-1 kodlarıyla aynıdır. Örneğin, Birleşik Krallık'ın ccTLD'si "uk" (.co.uk), ISO 3166-1 kodu "gb" (teknik olarak "Büyük Britanya ve Kuzey İrlanda'daki Birleşik Krallık'a" ait tüzel kişi için) "gb" şeklindedir. 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
'ten elde edilen bilgileri (ör. fotoğraflar ve yorumlar) görüntülediğinde gerekli atıfları da göstermelidir.
Daha fazla bilgiyi Android için Yerler SDK'sı ile İlgili Politikalar bölümünde bulabilirsiniz.