Yakındaki Arama (Yeni) isteği, daire olarak belirtilen aranacak bölgeyi giriş olarak alır. Bu bölge, dairenin merkez noktasının enlem ve boylam koordinatları ile metre cinsinden yarıçapla tanımlanır. İstek, belirtilen arama alanında her biri bir Place nesnesiyle temsil edilen eşleşen yerlerin listesini döndürür.
Varsayılan olarak, yanıtta arama alanındaki tüm yer türleri bulunur. İsteğe bağlı olarak, 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 yerlerin dahil edilmesini veya "okul" türündeki tüm yerlerin hariç tutulmasını belirtebilirsiniz.
Yakında Arama (Yeni) istekleri
PlacesClient.searchNearby'ı çağırarak ve istek parametrelerini tanımlayan bir SearchNearbyRequest nesnesi ileterek Yakındaki Arama (Yeni) isteğinde bulunun.
SearchNearbyRequest nesnesi, istek için gerekli ve isteğe bağlı tüm parametreleri belirtir. Gerekli parametreler şunlardır:
- Ayrıca alan maskesi olarak da bilinen Placenesnesinde döndürülecek alanların listesi. Alan listesinde en az bir alan belirtmezseniz veya alan listesini atlarsanız çağrı hata döndürür.
- Arama alanının konum kısıtlaması; enlem/boylam çifti ve metre cinsinden yarıçap değeri olarak tanımlanır.
Bu yakındaki arama isteği örneğinde, yanıttaki Place nesnelerinin, arama sonuçlarındaki her Place nesnesi için Place.Field.ID ve Place.Field.DISPLAY_NAME yer alanlarını içermesi gerektiği belirtilmektedir. Ayrıca yanıtı yalnızca "restoran" ve "kafe" türündeki yerleri döndürecek şekilde filtreler ancak "pizza_restaurant" ve "american_restaurant" türündeki yerleri hariç tutar.
// 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.DISPLAY_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ında 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 tüm yerleri temsil eden Placenesnelerinin listesi. Eşleşen yer başına birPlacenesnesi bulunur.
- Her Placenesnesi yalnızca istekte iletilen alan listesi tarafından 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. Ardından, her Place nesnesinde bu alanlara erişmek için Place.getId() ve Place.getName() yöntemlerini kullanabilirsiniz.
Place nesnesindeki verilere erişmeyle ilgili daha fazla örnek için Yer nesnesi veri alanlarına erişme başlıklı makaleyi inceleyin.
Gerekli parametreler
Arama için gerekli parametreleri belirtmek üzere
SearchNearbyRequest
nesnesini kullanın.
- Alan listesi- Yer ayrıntılarını istediğinizde, yer için - Placenesnesinde döndürülecek verileri alan maskesi olarak belirtmeniz gerekir. Alan maskesini tanımlamak için- Place.Fielddeğerlerinden oluşan bir diziyi- SearchNearbyRequestnesnesine iletin. Alan maskeleme, gereksiz veri istemediğinizden emin olmanızı sağlayan iyi bir tasarım uygulamasıdır. Bu sayede gereksiz işleme süresi ve faturalandırma ücretlerinden kaçınabilirsiniz.- Aşağıdaki alanlardan birini veya daha fazlasını belirtin: - Aşağıdaki alanlar Yakındaki Arama Pro SKU'sunu tetikler: - Place.Field.ADDRESS_COMPONENTS
 - Place.Field.BUSINESS_STATUS
 - Place.Field.ADDRESS
 - Place.Field.DISPLAY_NAME>*
 * Destek sonlandırılan- Place.Field.NAMEyerine kullanın.
 - Place.Field.ICON_BACKGROUND_COLOR
 - Place.Field.ICON_MASK_URL*
 * Desteği sonlandırılan- Place.Field.ICON_URLyerine kullanın.
 - Place.Field.ID
 - Place.Field.LAT_LNG
 - Place.Field.PHOTO_METADATAS
 - Place.Field.PLUS_CODE
 - Place.Field.PRIMARY_TYPE
 - Place.Field.PRIMARY_TYPE_DISPLAY_NAME
 - Place.Field.RESOURCE_NAME
 - Place.Field.TYPES
 - Place.Field.UTC_OFFSET
 - Place.Field.VIEWPORT
 - Place.Field.WHEELCHAIR_ACCESSIBLE_ENTRANCE
- Aşağıdaki alanlar Nearby Search Enterprise SKU'yu tetikler: - Place.Field.CURRENT_OPENING_HOURS
 - Place.Field.CURRENT_SECONDARY_OPENING_HOURS
 - Place.Field.INTERNATIONAL_PHONE_NUMBER*
 * Kullanımdan kaldırılan- Place.Field.PHONE_NUMBERyerine kullanın.
 - Place.Field.NATIONAL_PHONE_NUMBER
 - Place.Field.OPENING_HOURS
 - Place.Field.PRICE_LEVEL
 - Place.Field.RATING
 - Place.Field.SECONDARY_OPENING_HOURS
 - Place.Field.USER_RATING_COUNT*
 * Desteği sonlandırılan- Place.Field.USER_RATINGS_TOTALyerine kullanın.
 - Place.Field.WEBSITE_URI
- Aşağıdaki alanlar Yakındaki Arama Enterprise Plus SKU'sunu tetikler: - Place.Field.ALLOWS_DOGS
 - Place.Field.CURBSIDE_PICKUP
 - Place.Field.DELIVERY
 - Place.Field.DINE_IN
 - Place.Field.EDITORIAL_SUMMARY
 - Place.Field.EV_CHARGE_OPTIONS
 - Place.Field.FUEL_OPTIONS
 - Place.Field.GOOD_FOR_CHILDREN
 - Place.Field.GOOD_FOR_GROUPS
 - Place.Field.GOOD_FOR_WATCHING_SPORTS
 - Place.Field.LIVE_MUSIC
 - Place.Field.MENU_FOR_CHILDREN
 - Place.Field.OUTDOOR_SEATING
 - Place.Field.PARKING_OPTIONS
 - Place.Field.PAYMENT_OPTIONS
 - Place.Field.RESERVABLE
 - Place.Field.RESTROOM
 - Place.Field.REVIEWS
 - Place.Field.SERVES_BEER
 - Place.Field.SERVES_BREAKFAST
 - Place.Field.SERVES_BRUNCH
 - Place.Field.SERVES_COCKTAILS
 - Place.Field.SERVES_COFFEE
 - Place.Field.SERVES_DESSERT
 - 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 - SearchNearbyRequestnesnesini oluştururken- setPlaceFields()yöntemini çağırın.- Aşağıdaki örnekte, bir istek tarafından döndürülen - Placenesnesinin- Place.Field.IDve- Place.Field.DISPLAY_NAMEalanları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.DISPLAY_NAME);
- Konum kısıtlaması- Arama yapılacak bölgeyi tanımlayan bir - LocationRestrictionnesnesi. Bu bölge, merkez noktası ve metre cinsinden yarıçap ile tanımlanan bir daire olarak belirtilir. Yarıçap 0,0'dan büyük ve 50.000,0'a eşit veya daha küçük olmalıdır.Çok küçük bir yarıçap belirtmenin yanıt olarak- ZERO_RESULTSdöndüreceğini unutmayın.- Konum kısıtlama parametresini ayarlamak için - SearchNearbyRequestnesnesini oluştururken- setLocationRestriction()yöntemini çağırın.
İsteğe bağlı parametreler
Aramayla ilgili isteğe bağlı parametreleri belirtmek için
SearchNearbyRequest
nesnesini kullanın.
- 
    Türler ve birincil türlerArama sonuçlarını filtrelemek için kullanılan türler Tablo A listesinden türler belirtmenize olanak tanır. Her tür kısıtlama kategorisinde en fazla 50 tür belirtilebilir. Bir yer, kendisiyle ilişkili Tablo A türlerinden yalnızca tek bir birincil türe sahip olabilir. Örneğin, birincil tür "mexican_restaurant"veya"steak_house"olabilir. Bir yerin birincil türüyle ilgili sonuçları filtrelemek içinincludedPrimaryTypesveexcludedPrimaryTypessimgelerini kullanın.Bir yer, Tablo A'daki türlerden birden fazla tür değerine de sahip olabilir. Tablo A ile ilişkilendirilmiş. Örneğin, bir restoranın şu türleri olabilir: "seafood_restaurant","restaurant","food","point_of_interest","establishment". Bir yerle ilişkili türler listesindeki sonuçları filtrelemek içinincludedTypesveexcludedTypestuşlarını kullanın."restaurant"veya"hotel"gibi genel bir birincil tür belirttiğinizde yanıtta, belirtilen türden daha spesifik bir birincil türe sahip yerler olabilir. Örneğin,"restaurant"birincil türünü dahil etmeyi belirtirsiniz. Yanıtta, birincil türü"restaurant"olan yerler bulunabilir. Bununla birlikte, yanıtta"chinese_restaurant"veya"seafood_restaurant"gibi daha belirgin bir birincil türe sahip yerler de yer alabilir.Bir arama birden fazla 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")değerlerini belirtirseniz döndürülen yerler"restaurant"ile ilgili hizmetler sunar ancak öncelikli olarak"steak_house"olarak faaliyet göstermez.includedTypesveexcludedTypes'nin nasıl kullanılacağına dair bir örnek için Yakındaki Arama (Yeni) istekleri bölümüne bakın.Dahil edilen türlerAranacak yer türlerinin listesi (Tablo A). Bu parametre atlanırsa tüm türlerdeki yerler döndürülür. Dahil edilen türler parametresini ayarlamak için SearchNearbyRequestnesnesini oluştururkensetIncludedTypes()yöntemini çağırın.Hariç tutulan türlerTablo A'daki yer türlerinin bir arama dışında tutulacak listesi. İstek içinde hem includedTypes(ör."school") hem deexcludedTypes(ör."primary_school") belirtirseniz yanıtta"school"olarak kategorize edilen ancak"primary_school"olarak kategorize edilmeyen yerler yer alır. Yanıtta,includedTypesdeğerlerinden en az biriyle eşleşen veexcludedTypesdeğerlerinden hiçbiriyle eşleşmeyen yerler yer alıyor.includedTypesveexcludedTypes'de aynı tür gibi çakışan türler varsaINVALID_REQUESThatası döndürülür.Hariç tutulan türler parametresini ayarlamak için SearchNearbyRequestnesnesini oluştururkensetExcludedTypes()yöntemini çağırın.Dahil edilen birincil türlerAramaya dahil edilecek Tablo A'daki birincil yer türlerinin listesi. Dahil edilen birincil türler parametresini ayarlamak için SearchNearbyRequestnesnesini oluştururkensetIncludedPrimaryTypes()yöntemini çağırın.Hariç tutulan birincil türlerArama dışında tutulacak Tablo A'daki birincil yer türlerinin listesi. Hem includedPrimaryTypeshem deexcludedPrimaryTypesiçinde görünen bir tür gibi çakışan birincil türler varsaINVALID_ARGUMENThatası döndürülür.Hariç tutulan birincil türler parametresini ayarlamak için SearchNearbyRequestnesnesi oluşturulurkensetExcludedPrimaryTypes()yöntemini çağırın.
- 
    Maksimum sonuç sayısıDöndürülecek maksimum yer sonucu sayısını belirtir. 1 ile 20 (varsayılan) arasında olmalıdır (bu değerler dahil). Maksimum sonuç sayısı parametresini ayarlamak için SearchNearbyRequestnesnesini oluştururkensetMaxResultCount()yöntemini çağırın.
- 
    Sıralama tercihiKullanılacak sıralama türü. Bu parametre atlanırsa 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.
- DISTANCESonuçları, belirtilen konumdan uzaklıklarına göre artan düzende sıralar.
 Sıra tercihi parametresini ayarlamak için SearchNearbyRequestnesnesini oluştururkensetRankPreference()yöntemini çağırın.
- 
    Bölge koduYanıtı biçimlendirmek için kullanılan bölge kodu, iki karakterli CLDR kodu değeri olarak belirtilir. Varsayılan değer yoktur. Yanıtın FORMATTED_ADDRESSalanındaki ülke adıregionCodeile eşleşiyorsa ülke koduFORMATTED_ADDRESSalanından çıkarılır.Bazı önemli istisnalar dışında çoğu CLDR kodu ISO 3166-1 kodlarıyla aynıdır. Örneğin, Birleşik Krallık'ın ccTLD'si "uk" (.co.uk) iken ISO 3166-1 kodu "gb"dir (teknik olarak "Büyük Britanya ve Kuzey İrlanda Birleşik Krallığı" tüzel kişiliği için). Parametre, geçerli yasaya göre sonuçları etkileyebilir. Bölge kodu parametresini ayarlamak için SearchNearbyRequestnesnesini oluştururkensetRegionCode()yöntemini çağırın.
Uygulamanızda ilişkilendirmeleri gösterme
Uygulamanız PlacesClient'dan alınan bilgileri (ör. fotoğraflar ve yorumlar) gösterdiğinde, gerekli atıfları da göstermelidir.
Daha fazla bilgi için Android için Yerler SDK'sı ile ilgili politikalar başlıklı makaleyi inceleyin.