Wyszukiwanie w pobliżu (nowe)

Żądanie wyszukiwania w pobliżu (nowe) przyjmuje jako dane wejściowe region do wyszukiwania określonego w postaci okręgu, określonego szerokością i długością geograficzną współrzędne punktu środkowego okręgu i promień w metrach. zwraca listę pasujących miejsc, a każde z nich jest reprezentowane przez Place obiektu w określonym obszarze wyszukiwania.

Domyślnie odpowiedź zawiera miejsca dowolnego typu w obszarze wyszukiwania. Opcjonalnie możesz przefiltrować odpowiedź, określając listę typów miejsc do wyraźnie uwzględnić w odpowiedzi lub z niej wykluczyć. Możesz na przykład wpisać aby uwzględnić w odpowiedzi tylko te miejsca, które są typu „restauracja”, „piekarnia” i „kawiarnia” albo wyklucz wszystkie miejsca typu „szkoła”.

Żądania wyszukiwania w pobliżu (nowe)

Zadzwoń, aby wysłać prośbę o wyszukiwanie w pobliżu (nowe) PlacesClient.searchNearby zaliczając SearchNearbyRequest definiujący parametry żądania.

Obiekt SearchNearbyRequest określa wszystkie wymagane i opcjonalne dla żądania. Wymagane parametry to:

  • Lista pól do zwrócenia w obiekcie Place, nazywany również maską pola. Jeśli nie określisz co najmniej jednego pola na liście pól lub jeśli pominiesz listę pól, wywołanie zwróci błąd.
  • Ograniczenie lokalizacji w obszarze wyszukiwania, zdefiniowane jako para szerokości i długości geograficznej oraz wartości promienia w metrach.

To przykładowe żądanie wyszukiwania w pobliżu określa, że odpowiedź obiekty Place zawierają pola miejsc Place.Field.ID i Place.Field.NAME dla każdej z tych wartości Place obiekt w wynikach wyszukiwania. Filtruje też odpowiedź tylko do zwracane miejsca typu „restauracja” i „kawiarnia”, ale wykluczyć miejsca typu „pizza_restauracja” i „american_Restaurant” (restauracja amerykańska).

// 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();
    });

Odpowiedzi Wyszukiwanie w pobliżu (nowe)

SearchNearbyResponse reprezentuje odpowiedź z żądania wyszukiwania. SearchNearbyResponse obiekt zawiera:

  • Lista Place obiektów reprezentujących wszystkie pasujące miejsca, w tym jeden Place obiekt na pasujące miejsce.
  • Każdy obiekt Place zawiera tylko pola zdefiniowane przez listę pól które zostały przekazane do żądania.

Na przykład w żądaniu zdefiniowano listę pól jako:

// 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);

Ta lista pól oznacza, że każdy obiekt Place w odpowiedzi zawiera tylko identyfikator i nazwę każdego pasującego miejsca. Następnie możesz użyć usługi Place.getId() i Place.getName(), by uzyskać dostęp do tych pól w każdym obiekcie Place.

Więcej przykładów uzyskiwania dostępu do danych w obiekcie Place znajdziesz w sekcji Dostęp do miejsc pól danych obiektów.

Wymagane parametry

Użyj SearchNearbyRequest aby określić wymagane parametry wyszukiwania.

  • Lista pól

    W żądaniu szczegółów miejsca należy określić dane, które mają zostać zwrócone w Obiekt Place miejsca jako maska pola. Aby zdefiniować maskę pola, przekaż tablicę wartości z Place.Field do obiektu SearchNearbyRequest. Maskowanie pól to sprawdzona metoda projektowania, aby uniknąć wysyłania niepotrzebnych danych, niepotrzebnego czasu przetwarzania i opłat.

    Wypełnij co najmniej jedno z tych pól:

    • Następujące pola aktywują Wyszukiwanie w pobliżu (Podstawowe) Kod 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
    • Następujące pola aktywują Wyszukiwanie w pobliżu (Zaawansowane) Kod 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
    • Następujące pola aktywują wyszukiwanie w pobliżu (preferowana) Kod 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

    Aby ustawić parametr listy pól, wywołaj funkcję setPlaceFields() podczas tworzenia obiektu SearchNearbyRequest.

    Przykład poniżej zdefiniowano listę 2 wartości pól, aby określić, że Obiekt Place zwrócony przez żądanie zawiera Place.Field.ID i Place.Field.NAME pola:

// 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);
  • Ograniczenie dotyczące lokalizacji

    O LocationRestriction obiekt, który określa obszar wyszukiwania, określony jako okrąg, zdefiniowany przez punkt środkowy i promień w metrach. Promień musi być pomiędzy większymi niż 0,0 i mniejsze lub równe 50000,0.Pamiętaj, że określenie zbyt małego promienia zwróci w odpowiedzi ZERO_RESULTS.

    Aby ustawić parametr ograniczenia lokalizacji, wywołaj metodę setLocationRestriction() podczas tworzenia obiektu SearchNearbyRequest.

Parametry opcjonalne

Użyj SearchNearbyRequest aby określić opcjonalne parametry wyszukiwania.

  • Typy i typy główne

    Umożliwia określenie listy typów z listy typów Tabela A używana do filtrowania w wynikach wyszukiwania. W każdej kategorii ograniczeń typu można określić maksymalnie 50 typów.

    Miejsce może mieć tylko jeden typ główny Tabela A powiązana z . Na przykład typ podstawowy to "mexican_restaurant" lub "steak_house". Używaj includedPrimaryTypes i excludedPrimaryTypes, według których filtrować wyniki główny typ miejsca.

    Miejsce może też mieć wiele wartości typów z typów Tabela A i powiązane z nią. Na przykład restauracja może mieć następujące typy: "seafood_restaurant", "restaurant", "food" "point_of_interest", "establishment". Użyj formatu: includedTypes i excludedTypes, aby filtrować wyniki na liście typów powiązanych z danego miejsca.

    Gdy określisz ogólny typ główny, na przykład "restaurant" lub "hotel", odpowiedź może zawierać miejsca o wartości większej określony typ główny niż podany. Jeśli na przykład wpiszesz zawierają podstawowy typ "restaurant". Odpowiedź może zostać zawierają miejsca o głównym typie "restaurant", ale może też zawierać miejsca o bardziej konkretnym typie głównym, takim jak "chinese_restaurant" lub "seafood_restaurant".

    Jeśli wyszukiwanie jest określone z ograniczeniami wielu typów, tylko miejsca które są zgodne ze wszystkimi ograniczeniami. Jeśli na przykład wpiszesz includedTypes = Arrays.asList("restaurant") i excludedPrimaryTypes = Arrays.asList("steak_house"), zwrócone miejsca świadczą usługi powiązane z: "restaurant", ale nie działają głównie jako "steak_house".

    Przykład użycia atrybutów includedTypes i excludedTypes: Żądania wyszukiwania w pobliżu (nowe).

    Uwzględnione typy

    Lista typów miejsc z Tabela A do wyszukania. Jeśli pominiesz ten parametr, zwracane będą miejsca wszystkich typów.

    Aby ustawić parametr uwzględnionych typów, wywołaj metodę setIncludedTypes() podczas tworzenia obiektu SearchNearbyRequest.

    Wykluczone typy

    Lista typów miejsc z Tabela A, którą chcesz wykluczyć z grupy .

    Jeśli podasz zarówno includedTypes (np. "school"), jak i parametr excludedTypes (np. "primary_school") w żądaniu, wtedy odpowiedź zawiera miejsca zaklasyfikowane jako "school", ale nie jako "primary_school" Odpowiedź zawiera miejsca pasujące do co najmniej jednego z tych atrybutów includedTypes i żadne z excludedTypes.

    Jeśli występują kolidujące typy, takie jak typ występujący w obiekcie includedTypes i excludedTypes, zwracany jest błąd INVALID_REQUEST.

    Aby ustawić parametr wykluczonych typów, wywołaj metodę setExcludedTypes() podczas tworzenia obiektu SearchNearbyRequest.

    Uwzględnione typy główne

    Lista głównych rodzajów miejsc z Tabela A do uwzględnienia do wyszukiwania.

    Aby ustawić uwzględniony parametr typów głównych, wywołaj metodę setIncludedPrimaryTypes() podczas tworzenia obiektu SearchNearbyRequest.

    Wykluczone typy główne

    Lista głównych rodzajów miejsc z Tabela A do wykluczenia z wyników wyszukiwania.

    Jeśli występują sprzeczne typy główne, takie jak typ występujący w obu includedPrimaryTypes i excludedPrimaryTypes, Zwracany jest INVALID_ARGUMENT błąd.

    Aby ustawić wykluczony parametr typu głównego, wywołaj metodę setExcludedPrimaryTypes() podczas tworzenia obiektu SearchNearbyRequest.

  • Maksymalna liczba wyników

    Określa maksymalną liczbę wyników miejsc do zwrócenia. Wymagana wartość z zakresu 1 i 20 (domyślnie) włącznie.

    Aby ustawić parametr maksymalnej liczby wyników, wywołaj metodę setMaxResultCount() podczas tworzenia obiektu SearchNearbyRequest.

  • Preferencja rankingu

    Typ rankingu, który ma zostać użyty. Jeśli ten parametr zostanie pominięty, wyniki będą uporządkowane według popularności. Możliwe wartości:

    • POPULARITY (domyślnie) sortuje wyniki na podstawie ich popularności.
    • DISTANCE sortuje wyniki w kolejności rosnącej według odległości od określoną lokalizację.

    Aby ustawić parametr preferencji pozycji, podczas tworzenia obiektu SearchNearbyRequest wywołaj metodę setRankPreference().

  • Kod regionu

    Kod regionu używany do formatowania odpowiedzi podany jako dwuznakową wartość kodu CLDR. Nie ma wartości domyślnej.

    Jeśli nazwa kraju w polu formattedAddress w odpowiedzi jest zgodna z nazwą kraju regionCode, kod kraju został pominięty w polu formattedAddress.

    Większość kodów CLDR jest identycznych z kody ISO 3166-1, z kilkoma istotnymi wyjątkami. Na przykład domena ccTLD Wielkiej Brytanii to „uk” (co.uk), natomiast kod ISO 3166-1 to „gb”. (technicznie dla funkcji podmiotu „Wielkiej Brytanii i Irlandii Północnej”). Ten parametr może wpływać na wyniki w zależności od obowiązującego prawa.

    Aby ustawić parametr kodu regionu, wywołaj metodę setRegionCode() podczas tworzenia obiektu SearchNearbyRequest.

Wyświetl atrybucję w swojej aplikacji

Kiedy aplikacja wyświetla informacje uzyskane z: PlacesClient takich jak zdjęcia i opinie, aplikacja musi też wyświetlać wymagane informacje o źródłach.

Więcej informacji znajdziesz w zasadach pakietu SDK Miejsc dla na urządzeniu z Androidem.