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 Google Maps:
- Recupero di un indirizzo per un ID luogo nel servizio web dell'API Geocoding e nel servizio Geocoding, API Maps JavaScript.
- Specificare i waypoint di origine, di destinazione e intermedi nel servizio web dell'API Routes e dell'API Directions e nel servizio Directions, API Maps JavaScript.
- Specifica di origini e destinazioni nel servizio web API Routes e API Distance Matrix e nel servizio Distance Matrix, API Maps JavaScript.
- Recupero dei dettagli dei luoghi nel servizio web dell'API Places, nell'SDK Places per Android, nell'SDK Places per iOS e nella libreria Places.
- 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 di confine utilizzando uno stile basato sui dati per i confini.
Trovare l'ID di un luogo specifico
Cerchi l'ID di un luogo specifico? Utilizza la funzionalità di ricerca di ID luogo di seguito per cercare un luogo e recuperarne l'ID:
In alternativa, puoi visualizzare la funzionalità di ricerca dell'ID luogo con il relativo codice nella documentazione dell'API Maps JavaScript.
Panoramica
Un ID luogo è un identificatore testuale che identifica in modo univoco un luogo. La lunghezza dell'identificatore può variare (non è prevista una lunghezza massima per gli ID posizione). 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 potrebbero cambiare nel tempo.
Puoi utilizzare lo stesso ID luogo nell'API Places e in diverse API 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 Roadads.
Recupera i dettagli sul luogo utilizzando l'ID luogo
Un modo comune di 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 sul luogo. Puoi archiviare l'ID luogo e utilizzarlo per recuperare i dettagli dello stesso luogo in un secondo momento. Leggi ulteriori informazioni 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 luogo che corrisponde alla query di ricerca e al filtro specificati. Utilizza l'ID luogo per recuperare l'oggetto
Place
in un secondo momento.
Per ottenere un luogo in base all'ID, chiama
PlacesClient.fetchPlace()
passando un FetchPlaceRequest
.
L'API restituisce un
FetchPlaceResponse
in un
Task
.
L'elemento
FetchPlaceResponse
contiene un oggetto
Place
che corrisponde all'ID luogo fornito.
L'esempio di codice seguente mostra una chiamata a fetchPlace()
per ottenere 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. } });
Salva gli ID luogo per utilizzarli in un secondo momento
Gli ID posizione sono esenti dalle limitazioni per la memorizzazione nella cache indicate nella Sezione 3.2.3(b) dei Termini di servizio di Google Maps Platform. Puoi quindi archiviare i valori ID posizione per utilizzarli in un secondo momento.
Aggiornamento degli ID dei luoghi archiviati
Ti consigliamo di aggiornare gli ID luogo se risalgono a più di 12 mesi fa. Puoi
aggiornare gli ID luogo senza costi aggiuntivi, effettuando una
richiesta Place Details,
specificando solo il campo Place.Field.ID
nel parametro fields
.
Questa chiamata attiva lo SKU
Places Details - ID refresh
SKU.
Questa richiesta potrebbe restituire anche un codice di stato NOT_FOUND
. Una strategia prevede l'archiviazione della richiesta originale che ha restituito ogni ID luogo. Se un ID luogo non è più valido, puoi emettere un'altra richiesta per ricevere risultati
aggiornati. Questi risultati potrebbero includere o meno il luogo originale. Tuttavia, questa richiesta è addebitabile.
Codici di errore durante l'utilizzo degli ID luogo
Il codice di stato INVALID_REQUEST
indica che l'ID luogo specificato non è valido. INVALID_REQUEST
potrebbe 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 sposta in una nuova sede. Gli ID luogo potrebbero 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 a volte possono causare una risposta NOT_FOUND
oppure l'API potrebbe restituire un ID luogo diverso nella risposta. Questi tipi di ID luogo includono:
- Gli indirizzi stradali che non esistono in Google Maps come indirizzi precisi, ma che vengono dedotti da un intervallo di indirizzi.
- Segmenti di un percorso lungo, dove 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 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