Você pode solicitar mais detalhes sobre um estabelecimento ou ponto de interesse usando seu lugar ID e criar uma request do Place Details (novo). Place Details (novo) retorna informações mais abrangentes informações sobre o lugar indicado, como endereço completo, telefone número, avaliações e notas dos usuários.
Há muitas maneiras de se obter um ID de lugar. Você pode usar:
.Solicitações de Place Details (novo)
Você pode solicitar detalhes do lugar chamando
PlacesClient.fetchPlace()
e transmitir um valor de
FetchPlaceRequest
que contém um ID de lugar e uma lista de campos, bem como
como 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 Place Details (novo) retorna dados na forma de um
Place
, que inclui apenas os campos solicitados usando o campo
lista. Os resultados de dados de lugar não podem ficar vazios, então apenas os resultados de lugar
com dados forem retornados (por exemplo, se um lugar solicitado não tiver fotos, o
fotos não estarão presentes no resultado).
Para acessar campos de dados, chame o método
método.
Por exemplo, para acessar o nome do lugar, chame getName()
.
Parâmetros obrigatórios
Os parâmetros exigidos para
FetchPlaceRequest
são:
-
ID do lugar
um identificador textual que identifica um local de forma exclusiva, retornado de um Text Search (novo), Nearby Search (novo) ou Autocomplete (novo). Para mais informações sobre IDs de lugar, consulte a visão geral do ID de lugar.
-
Lista de campos
Ao solicitar um lugar, é necessário especificar quais dados retornar. Para faça isso, transmita uma lista de valores
Place.Field
especificando os dados que serão mostrados. Não existe uma lista padrão de retornados na resposta.As listas de campos são uma prática recomendada de design para garantir que você não solicite dados desnecessários, o que ajuda a evitar tempo de processamento desnecessário e de cobrança.É importante considerar essa lista porque isso 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 do Place Details (somente IDs):
Place.Field.ID
,Place.Field.NAME
,Place.Field.PHOTO_METADATAS
Os campos a seguir acionam a SKU do Place Details (somente local):
Place.Field.ADDRESS_COMPONENTS
,Place.Field.ADDRESS
,Place.Field.LAT_LNG
,Place.Field.PLUS_CODE
,Place.Field.TYPES
,Place.Field.VIEWPORT
Os campos a seguir acionam a SKU do Place Details (Basic):
Place.Field.BUSINESS_STATUS
,Place.Field.ICON_BACKGROUND_COLOR
,Place.Field.ICON_URL
,Place.Field.UTC_OFFSET
,Place.Field.WHEELCHAIR_ACCESSIBLE_ENTRANCE
Os campos a seguir acionam a SKU do Place Details (Advanced):
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
Os campos a seguir acionam a SKU do Place Details (Preferencial):
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
Parâmetros opcionais
Os parâmetros opcionais do
FetchPlaceRequest
são:
Código de região
O código da região usado para formatar a resposta, especificado como um código CLDR de dois caracteres. Não há valor padrão.
Se o nome do país do campo
Place.Field.ADDRESS
na resposta corresponder aoregionCode
, o código do país é omitido dePlace.Field.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 os "Reino Unido da Grã-Bretanha e Irlanda do Norte"). O parâmetro pode afetar os resultados com base na legislação aplicável.
Para definir o parâmetro do código da 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 Autocomplete (novo) como "sessions". O Autocomplete (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 o Place Details (novo) chamadas que seguem as chamadas de preenchimento automático (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
, NAME
e ADDRESS
para a
Empire State Building na cidade de 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.NAME, Place.Field.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);