Puoi richiedere ulteriori dettagli su un particolare edificio o punto d'interesse utilizzando il relativo place ID e inviando una richiesta Place Details (nuova). Place Details (Nuovo) restituisce informazioni più complete sul luogo indicato, ad esempio indirizzo completo, numero di telefono, valutazione degli utenti e recensioni.
Esistono molti modi per ottenere un ID luogo. Puoi utilizzare:
Richieste Place Details (nuove)
Per richiedere i dettagli del luogo, chiama PlacesClient.fetchPlace()
e passa un oggetto FetchPlaceRequest
contenente un ID luogo e un elenco di campi, nonché eventuali parametri facoltativi:
// 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);
Risposte Place Details (nuove)
Place Details (Nuovo) restituisce i dati sotto forma di oggetto Place
, che include solo i campi che hai richiesto utilizzando l'elenco di campi. I risultati relativi ai dati dei luoghi non possono essere vuoti, pertanto vengono restituiti soltanto i risultati relativi ai luoghi con dati (ad esempio, se un luogo richiesto non contiene foto, il campo Foto non sarà presente nel risultato).
Per accedere ai campi di dati, chiama il
metodo corrispondente.
Ad esempio, per accedere al nome del luogo, chiama getName()
.
Parametri obbligatori
I parametri obbligatori per FetchPlaceRequest
sono:
-
ID luogo
Un identificatore testuale che identifica in modo univoco un luogo, restituito da una ricerca testuale (nuova), ricerca nelle vicinanze (nuova) o completamento automatico (nuova). Per ulteriori informazioni sugli ID luogo, consulta la panoramica degli ID luogo.
-
Elenco campi
Quando richiedi un luogo, devi specificare i dati del luogo da restituire. Per farlo, trasmetti un elenco di valori di
Place.Field
che specifichi i dati da restituire. La risposta non contiene un elenco predefinito dei campi restituiti.Gli elenchi di campi sono una buona prassi di progettazione per evitare di richiedere dati non necessari, in modo da evitare tempi di elaborazione e addebiti di fatturazione non necessari.Questo elenco è un aspetto importante da considerare, perché influisce sul costo di ogni richiesta. Per maggiori informazioni, consulta Utilizzo e fatturazione.
Specifica uno o più dei seguenti campi:
I seguenti campi attivano lo SKU Place Details (solo ID):
Place.Field.ID
,Place.Field.NAME
ePlace.Field.PHOTO_METADATAS
I seguenti campi attivano lo SKU Place Details (solo posizione):
Place.Field.ADDRESS_COMPONENTS
,Place.Field.ADDRESS
,Place.Field.LAT_LNG
,Place.Field.PLUS_CODE
,Place.Field.TYPES
,Place.Field.VIEWPORT
I seguenti campi attivano lo SKU Place Details (di base):
Place.Field.BUSINESS_STATUS
,Place.Field.ICON_BACKGROUND_COLOR
,Place.Field.ICON_URL
,Place.Field.UTC_OFFSET
ePlace.Field.WHEELCHAIR_ACCESSIBLE_ENTRANCE
I seguenti campi attivano lo SKU 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
I seguenti campi attivano lo SKU Place Details (preferito):
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
Parametri facoltativi
I parametri facoltativi per
FetchPlaceRequest
sono:
Codice regione
Il codice regione utilizzato per formattare la risposta, specificato come valore di codice CLDR a due caratteri. Non esiste un valore predefinito.
Se il nome del paese del campo
Place.Field.ADDRESS
nella risposta corrisponde aregionCode
, il codice paese viene omesso daPlace.Field.ADDRESS
.La maggior parte dei codici CLDR è identica ai codici ISO 3166-1, con alcune eccezioni degne di nota. Ad esempio, il ccTLD del Regno Unito è "uk" (.co.uk), mentre il codice ISO 3166-1 è"gb " (tecnicamente per l'entità "The United Kingdom of Gran Bretagna e Irlanda del Nord"). Il parametro può influire sui risultati in base alla legge vigente.
Per impostare il parametro del codice regione, chiama il metodo
setRegionCode()
durante la creazione dell'oggettoFetchPlaceRequest
.-
Token di sessione
I token di sessione sono stringhe generate dall'utente che monitorano le chiamate di completamento automatico (nuove) come "sessioni". Autocomplete (Nuovo) utilizza i token di sessione per raggruppare le fasi di query e posizionare la selezione di una ricerca di completamento automatico di un utente in una sessione distinta ai fini della fatturazione. I token di sessione vengono passati nelle chiamate Place Details (Nuova) che seguono le chiamate Autocomplete (New). Per maggiori informazioni, consulta Token di sessione.
Per impostare il parametro del token di sessione, chiama il metodo
setSessionToken()
durante la creazione dell'oggettoFetchPlaceRequest
.
Esempio di Place Details
Nell'esempio seguente vengono richiesti i campi ID
, NAME
e ADDRESS
per l'Empire State Building a New 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);