É possível solicitar mais detalhes sobre um determinado estabelecimento ou ponto de interesse usando o ID do lugar e fazendo uma solicitação do Place Details (novo). O Place Details (New) retorna informações mais abrangentes sobre o local indicado, como o endereço completo, o número de telefone, a classificação e as avaliações dos usuários.
Há muitas maneiras de conseguir um ID de local. Você pode usar:
Solicitações de Place Details (novo)
É possível solicitar detalhes de lugares chamando
PlacesClient.fetchPlace()
e transmitindo um objeto
FetchPlaceRequest
que contenha um ID de lugar e uma lista de campos, além de parâmetros opcionais:
// 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);
Respostas do Place Details (novo)
O recurso "Detalhes do lugar (novo)" retorna dados na forma de um objeto Place
, que inclui apenas os campos que você solicitou usando a lista de campos. Os resultados dos dados do lugar não podem ficar vazios. Portanto, apenas os resultados do lugar com dados são retornados. Por exemplo, se um lugar solicitado não tiver fotos, o campo de fotos não vai estar presente no resultado.
Para acessar campos de dados, chame o
método correspondente.
Por exemplo, para acessar o nome do lugar, chame getName()
.
Parâmetros obrigatórios
Os parâmetros necessários para
FetchPlaceRequest
são:
-
ID do lugar
Um identificador textual que identifica um lugar de forma exclusiva, retornado de uma Text Search (novo), Nearby Search (novo) ou Autocomplete (novo). Para mais informações sobre IDs de local, consulte a visão geral de IDs de local.
-
Lista de campos
Ao solicitar um lugar, você precisa especificar quais dados do lugar serão retornados. Para fazer isso, transmita uma lista de valores
Place.Field
especificando os dados a serem retornados. Não há uma lista padrão de campos retornados na resposta.As listas de campos são uma boa prática de design para garantir que você não solicite dados desnecessários, o que ajuda a evitar tempo de processamento e cobranças desnecessários.Essa lista é uma consideração importante porque afeta o custo de cada solicitação. Para mais informações, consulte Uso e faturamento.
Especifique um ou mais dos seguintes campos:
Os campos a seguir acionam a SKU Place Details (somente IDs):
Place.Field.DISPLAY_NAME
,Place.Field.ID
,Place.Field.PHOTO_METADATAS
,Place.Field.RESOURCE_NAME
Os campos a seguir acionam a SKU Place Details (Only Location):
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
,
Os campos a seguir acionam a SKU Place Details (Basic):
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
,
Os campos a seguir acionam a SKU Place Details (Advanced):
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
Os campos a seguir acionam a SKU Place Details (Preferred):
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
Parâmetros opcionais
Os parâmetros opcionais de
FetchPlaceRequest
são:
Código de região
O código de região usado para formatar a resposta, especificado como um valor de código CLDR de dois caracteres. Não há valor padrão.
Se o nome do país do campo
Place.Field.FORMATTED_ADDRESS
na resposta corresponder aoregionCode
, o código do país será omitido dePlace.Field.FORMATTED_ADDRESS
.A maioria dos códigos CLDR é idêntica aos códigos ISO 3166-1, com algumas exceções notáveis. Por exemplo, o ccTLD do Reino Unido é "uk" (.co.uk), enquanto o código ISO 3166-1 é "gb" (tecnicamente, para a entidade "Reino Unido da Grã-Bretanha e da Irlanda do Norte"). O parâmetro pode afetar os resultados com base na legislação aplicável.
Para definir o parâmetro de código de região, chame o método
setRegionCode()
ao criar o objetoFetchPlaceRequest
.-
Token da sessão
Os tokens de sessão são strings geradas pelo usuário que rastreiam as chamadas do Autocomplete (Novo) como "sessões". O preenchimento automático (novo) usa tokens de sessão para agrupar as fases de consulta e seleção de local de uma pesquisa de preenchimento automático do usuário em uma sessão discreta para fins de faturamento. Os tokens de sessão são transmitidos para as chamadas do Place Details (novo) que seguem as chamadas do Autocomplete (novo). Para mais informações, consulte Tokens de sessão.
Para definir o parâmetro do token de sessão, chame o método
setSessionToken()
ao criar o objetoFetchPlaceRequest
.
Exemplo de Place Details
O exemplo a seguir solicita os campos ID
, DISPLAY_NAME
e FORMATTED_ADDRESS
para o Empire State Building em Nova York.
// 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);