Aby uzyskać więcej informacji o konkretnym obiekcie lub punkcie zainteresowania, możesz użyć jego identyfikatora miejsca i przesłać żądanie Szczegóły miejsca (nowe). Szczegóły miejsca (Nowy) zwracają bardziej kompleksowe informacje o wybranym miejscu, takie jak pełny adres, numer telefonu, ocena i opinie użytkowników.
Identyfikator miejsca można uzyskać na wiele sposobów. Możesz użyć:
prośby o szczegóły miejsca (nowe);
Aby uzyskać szczegóły miejsca, wywołaj funkcję
PlacesClient.fetchPlace()
i przekaż obiekt FetchPlaceRequest
zawierający identyfikator miejsca i listę pól, a także dowolne parametry opcjonalne:
// Define a place ID.
final String placeId = "INSERT_PLACE_ID_HERE";
// Specify the list of fields to return.
final List<Place.Field> placeFields = Arrays.asList("INSERT_PLACE_FIELDS_HERE");
// Construct a request object, passing the place ID and field list.
final FetchPlaceRequest request = FetchPlaceRequest.newInstance(placeId, placeFields);
// Pass the request object and make the request
Task<FetchPlaceResponse> placeTask = placesClient.fetchPlace(request);
odpowiedzi na „Informacje o miejscu (nowe)”,
Zapytanie Szczegóły miejsca (nowe) zwraca dane w postaci obiektu Place
, który zawiera tylko pola, o które prosisz za pomocą parametru field. Wyniki danych o miejscach nie mogą być puste, dlatego zwracane są tylko wyniki z danymi (np. jeśli żądane miejsce nie ma zdjęć, pole zdjęć nie będzie obecne w wyniku).
Aby uzyskać dostęp do pól danych, wywołaj odpowiednią metodę.
Aby na przykład uzyskać dostęp do nazwy miejsca, wybierz getName()
.
Wymagane parametry
Wymagane parametry w przypadku FetchPlaceRequest
:
-
Identyfikator miejsca
Identyfikator tekstowy jednoznacznie identyfikujący miejsce zwrócony przez wyszukiwanie tekstowe (nowa funkcja), wyszukiwanie w pobliżu (nowa funkcja) lub Autouzupełnianie (nowa funkcja). Więcej informacji o identyfikatorach miejsc znajdziesz w artykule Omówienie identyfikatorów miejsc.
-
Lista pól
Gdy wysyłasz żądanie dotyczące miejsca, musisz określić, jakie dane o miejscu mają zostać zwrócone. Aby to zrobić, prześlij listę wartości
Place.Field
, która określa dane do zwrócenia. W odpowiedzi nie ma domyślnej listy zwracanych pól.Listy pól to dobra praktyka projektowania, która pozwala uniknąć przesyłania niepotrzebnych danych, co z kolei pozwala uniknąć niepotrzebnego czasu przetwarzania i opłat.Ta lista jest ważna, ponieważ wpływa na koszt każdej prośby. Więcej informacji znajdziesz w artykule Wykorzystanie i rozliczenia.
Podaj co najmniej 1 z tych pól:
Te pola powodują wyświetlenie kodu SKU szczegółów miejsca (tylko identyfikatory):
Place.Field.DISPLAY_NAME
,Place.Field.ID
,Place.Field.PHOTO_METADATAS
,Place.Field.RESOURCE_NAME
,
Te pola powodują wyświetlenie usługi SKU Szczegóły miejsca (tylko lokalizacja):
Place.Field.ADDRESS_COMPONENTS
,ADR_FORMAT_ADDRESS
,Place.Field.FORMATTED_ADDRESS
,Place.Field.LOCATION
,Place.Field.PLUS_CODE
,Place.Field.SHORT_FORMATTED_ADDRESS
,Place.Field.TYPES
,Place.Field.VIEWPORT
Te pola powodują wyświetlenie identyfikatora SKU Szczegóły miejsca (podstawowe):
Place.Field.ACCESSIBILITY_OPTIONS
,Place.Field.BUSINESS_STATUS
,Place.Field.GOOGLE_MAPS_URI
,Place.Field.ICON_BACKGROUND_COLOR
,Place.Field.ICON_MASK_URL
,Place.Field.PRIMARY_TYPE
,Place.Field.PRIMARY_TYPE_DISPLAY_NAME
,Place.Field.SUB_DESTINATIONS
,Place.Field.UTC_OFFSET
Te pola powodują wyświetlenie usługi SKU Szczegóły miejsca (zaawansowane):
Place.Field.CURRENT_OPENING_HOURS
,Place.Field.CURRENT_SECONDARY_OPENING_HOURS
,Place.Field.INTERNATIONAL_PHONE_NUMBER
,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
,Place.Field.WEBSITE_URI
Te pola powodują wyświetlenie elementu SKU Szczegóły miejsca (preferowane):
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
Parametry opcjonalne
Parametry opcjonalne w FetchPlaceRequest
:
Kod regionu
Kod regionu użyty do sformatowania odpowiedzi, podany jako 2-znakowy kod CLDR. Nie ma wartości domyślnej.
Jeśli nazwa kraju w polu
Place.Field.FORMATTED_ADDRESS
w odpowiedzi pasuje do wartości w poluregionCode
, kod kraju jest pomijany w poluPlace.Field.FORMATTED_ADDRESS
.Większość kodów CLDR jest identyczna z kodami ISO 3166-1, z niektórymi wyjątkami. Na przykład ccTLD Wielkiej Brytanii to „uk” (.co.uk), a jej kod ISO 3166-1 to „gb” (technicznie dla podmiotu „Zjednoczone Królestwo Wielkiej Brytanii i Irlandii Północnej”). Parametr może wpływać na wyniki w zależności od obowiązujących przepisów.
Aby ustawić parametr kodu regionu, podczas tworzenia obiektu
FetchPlaceRequest
wywołaj metodęsetRegionCode()
.-
Token sesji
Tokeny sesji to tworzone przez użytkownika ciągi znaków, które śledzą wywołania funkcji Autouzupełnianie (nowa) jako „sesje”. Autouzupełnianie (nowa wersja) używa tokenów sesji, aby grupować fazy zapytania i wyboru miejsca w autouzupełnianiu w ramach jednej sesji na potrzeby rozliczeń. Tokeny sesji są przekazywane do wywołań Szczegóły miejsca (Nowe), które następują po wywołaniach Autouzupełnianie (Nowe). Więcej informacji znajdziesz w artykule Tokeny sesji.
Aby ustawić parametr tokenu sesji, podczas tworzenia obiektu
FetchPlaceRequest
wywołaj metodęsetSessionToken()
.
Przykład informacji o miejscu
W tym przykładzie żądamy pól ID
, DISPLAY_NAME
i FORMATTED_ADDRESS
dla Empire State Building w Nowym Jorku.
// Define a place ID.
final String placeId = "ChIJaXQRs6lZwokRY6EFpJnhNNE";
// Specify the list of fields to return.
final List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.DISPLAY_NAME, Place.Field.FORMATTED_ADDRESS);
// Construct a request object, passing the place ID and field list.
final FetchPlaceRequest request = FetchPlaceRequest.newInstance(placeId, placeFields);
// Pass the request object and make the request
Task<FetchPlaceResponse> placeTask = placesClient.fetchPlace(request);