Yakındaki Arama (Yeni)

Platform seçin: Android iOS JavaScript Web Hizmeti

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şına Place 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 çağırın.SearchNearbyRequest

    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 ve Place.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 olarak ZERO_RESULTS değerini döndür.

    Konum kısıtlaması parametresini ayarlamak için setLocationRestriction() yöntemini çağırın.SearchNearbyRequest

İ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çin includedPrimaryTypes ve excludedPrimaryTypes 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 ve excludedTypes ile ilişkili türler listesindeki sonuçları filtrelemek için bir yer.

    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") ve excludedPrimaryTypes = 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 ve excludedTypes 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ştururken setIncludedTypes() yöntemini çağırın.

    Hariç tutulan türler

    Şu kaynaktan yer türlerinin bir listesi: Bir arayın.

    Hem includedTypes (örneğin, "school") hem de excludedTypes ("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 ve excludedTypes hiçbiri.

    Çakışan türler varsa (örneğin, her iki includedTypes öğesinde de görünen bir tür) ve excludedTypes ise INVALID_REQUEST hatası döndürülür.

    Hariç tutulan türler parametresini ayarlamak için, SearchNearbyRequest nesnesini oluştururken setExcludedTypes() 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ştururken setIncludedPrimaryTypes() 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 ve excludedPrimaryTypes, INVALID_ARGUMENT hata döndürüldü.

    Hariç tutulan birincil türler parametresini ayarlamak için SearchNearbyRequest nesnesini oluştururken setExcludedPrimaryTypes() 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ştururken setMaxResultCount() 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ştururken setRankPreference() 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 kodu formattedAddress öğ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ştururken setRegionCode() 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.