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 di Maps:
- Recupero di un indirizzo per un ID luogo nel servizio web dell'API Geocoding e nel servizio Geocoding, API Maps JavaScript.
- Specifica i punti di partenza intermedi, di destinazione e di destinazione nel servizio web dell'API Directions e nel servizio Directions, nell'API Maps JavaScript.
- Specificare le origini e le destinazioni nel servizio web dell'API Distance Matrix e nel servizio Distance Matrix, API Maps JavaScript.
- Recupero di Dettagli luogo nel servizio web dell'API Places, SDK Places per Android, SDK Places per iOS e Libreria Places, API JavaScript.
- Utilizzo dei parametri Place ID nell'API Maps Embed.
- Recupero delle query di ricerca negli URL di Maps.
- Visualizzazione dei limiti di velocità nell'API Roads.
- Ricerca e stile dei poligoni dei confini nello stile basato sui dati.
Trovare l'ID di un luogo specifico
Stai cercando l'ID luogo di un luogo specifico? Utilizza lo strumento di ricerca di ID luogo di seguito per cercare un luogo e ottenerne l'ID:
In alternativa, puoi visualizzare lo strumento di ricerca degli ID luogo con il relativo codice nella documentazione dell'API Maps JavaScript.
Panoramica
L'ID luogo è un identificatore testuale 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 sedi, tra cui attività commerciali, punti di riferimento, parchi e incroci. È possibile che per uno stesso luogo o una sede siano presenti più ID luogo. Gli ID dei luoghi possono cambiare nel tempo.
Puoi utilizzare lo stesso ID luogo nell'API Places e in varie API di Google Maps Platform. Ad esempio, potete 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
Gli ID luogo sono esenti dalle limitazioni di memorizzazione nella cache indicate nella sezione 3.2.3(b) dei Termini di servizio di Google Maps Platform. Dopo aver identificato l'ID luogo di un luogo, puoi riutilizzare tale valore la volta successiva che cerchi il luogo. Per scoprire di più, consulta la sezione Salvare gli ID luogo per utilizzarli in un secondo momento di seguito.
Un modo comune per utilizzare gli ID luogo è cercare un luogo (utilizzando, ad esempio, l'API Places o la libreria Places nell'API Maps JavaScript), quindi utilizzare l'ID luogo restituito per recuperare i dettagli del luogo. Puoi memorizzare l'ID luogo e utilizzarlo per recuperare gli stessi dettagli in un secondo momento. Scopri di più sul salvataggio degli ID luogo di seguito.
Esempio di utilizzo dell'SDK Places 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 località corrispondente alla query di ricerca e al filtro forniti. Utilizza l'ID luogo per recuperare di nuovo l'oggetto
Place
.
Per ricevere un luogo in base all'ID, chiama
PlacesClient.fetchPlace()
,
passando un FetchPlaceRequest
.
L'API restituisce un
FetchPlaceResponse
in
Task
.
FetchPlaceResponse
contiene un oggetto Place
corrispondente all'ID luogo fornito.
L'esempio di codice riportato di seguito mostra la chiamata a fetchPlace()
per ricevere i dettagli del luogo specificato.
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. } });
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") } }
Salva gli ID luogo per utilizzarli in un secondo momento
Gli ID luogo sono esenti dalle limitazioni di memorizzazione nella cache indicate nella Sezione 3.2.3(a) dei Termini di servizio di Google Maps Platform. Puoi quindi memorizzare i valori degli ID luogo per utilizzarli in un secondo momento.
Aggiornamento degli ID dei luoghi archiviati
Consigliamo di aggiornare gli ID luogo se hanno più di 12 mesi. Per aggiornare gli ID luogo, senza costi, effettua una
richiesta Dettagli luogo,
specificando solo il campo Place.Field.ID
nel parametro fields
.
Questa chiamata attiverà lo SKU
Dettagli luogo - aggiornamento dell'ID
SKU. Tuttavia, questa richiesta potrebbe anche restituire il codice di stato NOT_FOUND
. Una strategia consiste nell'archiviare la richiesta originale che ha restituito ciascun ID
del luogo. Se un ID luogo non è più valido, puoi riemettere tale richiesta per ottenere
nuovi risultati. Questi risultati potrebbero includere o meno il luogo originale. La richiesta è addebitabile.
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
potrebbe essere restituito dopo che l'ID luogo è stato troncato o altrimenti modificato e non è più corretto.
Il codice di stato NOT_FOUND
indica che l'ID luogo specificato
è obsoleto. L'ID luogo può diventare obsoleto se un'attività chiude o si trasferisce in una nuova sede. Gli ID dei luoghi possono cambiare a causa di aggiornamenti su larga scala nel database di Google Maps. In questi casi, un luogo potrebbe ricevere un nuovo ID luogo e il vecchio
ID restituisce una risposta NOT_FOUND
.
In particolare, alcuni tipi di ID luogo potrebbero causare una risposta NOT_FOUND
o l'API potrebbe restituire un ID luogo diverso nella risposta. Questi tipi di ID luogo includono:
- Indirizzi che non esistono in Google Maps come indirizzi precisi, ma vengono dedotti da un intervallo di indirizzi.
- Segmenti di un percorso lungo, in cui la richiesta specifica anche una città o una località.
- Incroci.
- Luoghi con un componente indirizzo di tipo
subpremise
.
Questi ID assumono spesso la forma di una stringa lunga (non è prevista 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