Gli ID luogo identificano in modo univoco un luogo nel database di Google Places e su Google Maps. Gli ID luogo sono accettati nelle richieste alle seguenti API Maps:
- Recupero di un indirizzo per un ID luogo nel servizio web dell'API Geocoding e nel servizio Geocoding dell'API Maps JavaScript.
- Specifica di origine, destinazione e tappe intermedie nel servizio web API Routes e API Directions e nel servizio Directions, API Maps JavaScript.
- Specificare le origini e le destinazioni nell'API Routes e nel servizio web dell'API Distance Matrix e nel servizio Distance Matrix dell'API Maps JavaScript.
- Recupero dei dettagli dei luoghi nel servizio web dell'API Places, in Places SDK for Android, in Places SDK for iOS e in Places Library.
- Utilizzo dei parametri ID luogo nell'API Maps Embed.
- Recupero delle query di ricerca negli URL di Maps.
- Visualizzazione dei limiti di velocità nell'API Roads.
- Individuare e applicare stili ai poligoni di confine negli stili basati sui dati per i confini.
Trovare l'ID di un determinato luogo
Stai cercando l'ID luogo di un luogo specifico? Utilizza lo strumento di ricerca degli ID luogo riportato di seguito per cercare un luogo e ottenere il relativo ID:
In alternativa, puoi visualizzare il cercatore di ID luogo con il relativo codice nella documentazione dell'API Maps JavaScript.
Panoramica
Un ID luogo è un identificatore di testo che identifica in modo univoco un luogo. La lunghezza dell'identificatore può variare (non esiste una lunghezza massima per gli ID luogo). Esempi:
-
ChIJgUbEo8cfqokR5lP9_Wh_DaM
-
GhIJQWDl0CIeQUARxks3icF8U8A
-
EicxMyBNYXJrZXQgU3QsIFdpbG1pbmd0b24sIE5DIDI4NDAxLCBVU0EiGhIYChQKEgnRTo6ixx-qiRHo_bbmkCm7ZRAN
-
EicxMyBNYXJrZXQgU3QsIFdpbG1pbmd0b24sIE5DIDI4NDAxLCBVU0E
-
IhoSGAoUChIJ0U6OoscfqokR6P225pApu2UQDQ
Gli ID luogo sono disponibili per la maggior parte delle località, tra cui attività, punti di riferimento, parchi e incroci. È possibile che lo stesso luogo o la stessa località abbia più ID luogo diversi. Gli ID posizione possono cambiare nel tempo.
Puoi utilizzare lo stesso ID luogo nell'API Places e in un numero di API di Google Maps Platform. Ad esempio, puoi utilizzare lo stesso ID luogo per fare riferimento a un luogo nell'API Places, nell'API Maps JavaScript, nell'API Geocoding, nell'API Maps Embed e nell'API Roads.
Recuperare i dettagli del luogo utilizzando l'ID luogo
Un modo comune per utilizzare gli ID luogo è cercare un luogo (ad esempio utilizzando l'API Places o la libreria Places nell'API Maps JavaScript) e poi utilizzare l'ID luogo restituito per recuperare i dettagli del luogo. Puoi memorizzare l'ID luogo e usarlo per recuperare in un secondo momento gli stessi dettagli del luogo. Leggi di seguito come salvare gli ID luogo.
Esempio di utilizzo di Places SDK per Android
Nell'SDK Places per Android, puoi recuperare l'ID di un luogo chiamando Place.getId()
.
Il servizio
Place Autocomplete
restituisce anche un ID luogo per ogni luogo che corrisponde alla query di ricerca e al filtro forniti. Utilizza l'ID luogo per recuperare di nuovo l'oggetto
Place
in un secondo momento.
Per ottenere un luogo tramite ID, chiama
PlacesClient.fetchPlace()
,
passando un FetchPlaceRequest
.
L'API restituisce un
FetchPlaceResponse
in un
Task
.
L'attributo
FetchPlaceResponse
contiene un oggetto
Place
corrispondente all'ID luogo fornito.
Il seguente esempio di codice mostra la chiamata a fetchPlace()
per recuperare i dettagli del luogo specificato.
Kotlin
// Define a Place ID. val placeId = "INSERT_PLACE_ID_HERE" // Specify the fields to return. val placeFields = listOf(Place.Field.ID, Place.Field.NAME) // Construct a request object, passing the place ID and fields array. val request = FetchPlaceRequest.newInstance(placeId, placeFields) placesClient.fetchPlace(request) .addOnSuccessListener { response: FetchPlaceResponse -> val place = response.place Log.i(PlaceDetailsActivity.TAG, "Place found: ${place.name}") }.addOnFailureListener { exception: Exception -> if (exception is ApiException) { Log.e(TAG, "Place not found: ${exception.message}") val statusCode = exception.statusCode TODO("Handle error with given status code") } }
Java
// Define a Place ID. final String placeId = "INSERT_PLACE_ID_HERE"; // Specify the fields to return. final List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.NAME); // Construct a request object, passing the place ID and fields array. final FetchPlaceRequest request = FetchPlaceRequest.newInstance(placeId, placeFields); placesClient.fetchPlace(request).addOnSuccessListener((response) -> { Place place = response.getPlace(); Log.i(TAG, "Place found: " + place.getName()); }).addOnFailureListener((exception) -> { if (exception instanceof ApiException) { final ApiException apiException = (ApiException) exception; Log.e(TAG, "Place not found: " + exception.getMessage()); final int statusCode = apiException.getStatusCode(); // TODO: Handle error with given status code. } });
Salvare gli ID luogo per utilizzarli in un secondo momento
Gli ID luogo sono esenti dalle limitazioni alla memorizzazione nella cache indicate nella sezione 3.2.3(b) dei Termini di servizio di Google Maps Platform. Di conseguenza, puoi archiviare i valori ID luogo per utilizzarli in un secondo momento.
Aggiornamento degli ID dei luoghi memorizzati
Ti consigliamo di aggiornare gli ID luogo se sono trascorsi più di 12 mesi. Puoi aggiornare gli ID luogo senza costi inviando una richiesta Places Details, specificando solo il campo Place.Field.ID
nel parametro fields
.
Questa chiamata attiva lo SKU
Places Details - ID Refresh.
Questa richiesta potrebbe anche restituire il codice di stato NOT_FOUND
. Una strategia è memorizzare la richiesta originale che ha restituito ogni ID luogo. Se un ID luogo diventa non valido, puoi emettere nuovamente la richiesta per ottenere risultati aggiornati. Questi risultati possono includere o meno il luogo originale. Tuttavia, questa richiesta è a pagamento.
Codici di errore quando si utilizzano gli ID luogo
Il codice di stato INVALID_REQUEST
indica che l'ID luogo specificato non è valido. INVALID_REQUEST
può essere restituito quando l'ID luogo è stato troncato o modificato in altro modo e non è più corretto.
Il codice di stato NOT_FOUND
indica che l'ID luogo specificato è obsoleto. Un ID luogo può diventare obsoleto se un'attività chiude o si trasferisce in una nuova sede. Gli ID luogo possono cambiare a causa di aggiornamenti nel database di Google Maps. In questi casi, un luogo potrebbe ricevere un nuovo ID luogo e l'ID precedente restituire una risposta NOT_FOUND
.
In particolare, a volte alcuni tipi di ID luogo possono causare una risposta NOT_FOUND
o l'API può restituire un ID luogo diverso nella risposta. Questi tipi di ID luogo includono:
- Indirizzi che non esistono in Google Maps come indirizzi precisi, ma che vengono dedotti da una serie di indirizzi.
- Segmenti di un percorso lungo, in cui la richiesta specifica anche una città o una località.
- Incroci.
- Luoghi con un componente dell'indirizzo di tipo
subpremise
.
Spesso questi ID hanno la forma di una stringa lunga (non esiste una lunghezza massima per gli ID luogo). Ad esempio:
EpID4LC14LC_4LCo4LCv4LGN4LCo4LCX4LCw4LGNIC0g4LC44LGI4LCm4LGN4LCs4LC-4LCm4LGNIOCwsOCxi-CwoeCxjeCwoeCxgSAmIOCwteCwv-CwqOCwr-CxjSDgsKjgsJfgsLDgsY0g4LCu4LGG4LCv4LC_4LCo4LGNIOCwsOCxi-CwoeCxjeCwoeCxgSwg4LC14LC_4LCo4LCv4LGNIOCwqOCwl-CwsOCxjSDgsJXgsL7gsLLgsKjgsYAsIOCwsuCwleCxjeCwt-CxjeCwruCwv-CwqOCwl-CwsOCxjSDgsJXgsL7gsLLgsKjgsYAsIOCwuOCwsOCxguCwsOCxjSDgsKjgsJfgsLDgsY0g4LC14LGG4LC44LGN4LCf4LGNLCDgsLjgsK_gsYDgsKbgsL7gsKzgsL7gsKbgsY0sIOCwueCxiOCwpuCwsOCwvuCwrOCwvuCwpuCxjSwg4LCk4LGG4LCy4LCC4LCX4LC-4LCjIDUwMDA1OSwg4LCt4LC-4LCw4LCk4LCm4LGH4LC24LCCImYiZAoUChIJ31l5uGWYyzsR9zY2qk9lDiASFAoSCd9ZebhlmMs7Efc2NqpPZQ4gGhQKEglDz61OZpjLOxHgDJCFY-o1qBoUChIJi37TW2-YyzsRr_uv50r7tdEiCg1MwFcKFS_dyy4