Il termine geocodifica si riferisce generalmente alla traduzione di un indirizzo leggibile dall'uomo in una posizione su una mappa. Il processo inverso, ovvero la traduzione di una posizione sulla mappa in un indirizzo leggibile, è noto come geocodifica inversa.
Richieste di geocodifica inversa
Parametri obbligatori
latlng: le coordinate di latitudine e longitudine che specificano la località per la quale vuoi l'indirizzo leggibile più vicino.key: la chiave API della tua applicazione. Questa chiave identifica la tua applicazione ai fini della gestione della quota. Scopri come ottenere una chiave.
Parametri facoltativi
Di seguito sono riportati i parametri facoltativi che puoi includere in una richiesta di geocodifica inversa:
language: la lingua in cui restituire i risultati.- Consulta l'elenco delle lingue supportate. Google aggiorna spesso le lingue supportate, pertanto questo elenco potrebbe non essere esaustivo.
- Se
languagenon viene fornito, il geocodificatore tenta di utilizzare la lingua preferita specificata nell'intestazioneAccept-Languageo la lingua nativa del dominio da cui viene inviata la richiesta. - Il geocodificatore fa del suo meglio per fornire un indirizzo leggibile sia per l'utente sia per le persone del posto. Per raggiungere questo obiettivo, restituisce gli indirizzi nella lingua locale, traslitterati in un alfabeto leggibile dall'utente, se necessario, rispettando la lingua preferita. Tutti gli altri indirizzi vengono restituiti nella lingua preferita. I componenti dell'indirizzo vengono restituiti tutti nella stessa lingua, che viene scelta dal primo componente.
- Se un nome non è disponibile nella lingua preferita, il geocodificatore utilizza la corrispondenza più vicina.
region: il codice regione, specificato come valore di due caratteri ccTLD ("dominio di primo livello"). Il parametro può anche influire sui risultati in base alla legge vigente.result_type: un filtro di uno o più tipi di indirizzo, separati da una barra verticale (|). Se il parametro contiene più tipi di indirizzo, l'API restituisce tutti gli indirizzi che corrispondono a uno dei tipi. Nota sull'elaborazione: il parametroresult_typenon limita la ricerca ai tipi di indirizzo specificati. Invece,result_typefunge da filtro post-ricerca: l'API recupera tutti i risultati per illatlngspecificato, quindi ignora i risultati che non corrispondono ai tipi di indirizzo specificati. Sono supportati i seguenti valori:Tipi di indirizzi e tipi di componenti degli indirizzi
L'array
typesnel corpoGeocodeResultdella risposta indica il tipo di indirizzo. Esempi di tipi di indirizzo includono un indirizzo, un paese o un'entità politica. L'arraytypesnel campoAddressComponentsdel corpoGeocodeResultindica il tipo di ogni parte dell'indirizzo. Alcuni esempi sono il numero civico o il paese.Gli indirizzi possono avere più tipi. I tipi possono essere considerati "tag". Ad esempio, molte città sono taggate con i tipi
politicalelocality.I seguenti tipi sono supportati e restituiti negli array dei tipi di indirizzo e dei tipi di componenti dell'indirizzo:
Tipo di indirizzo Descrizione street_addressUn indirizzo preciso. routeUn percorso con nome (ad es. "US 101"). intersectionUn incrocio importante, di solito tra due strade principali. politicalUn'entità politica. In genere, questo tipo indica un poligono di un'amministrazione civile. countryL'entità politica nazionale, in genere il tipo di ordine più elevato restituito dal geocodificatore. administrative_area_level_1Una divisione amministrativa principale al di sotto del livello paese. Negli Stati Uniti, questi livelli amministrativi sono gli stati. Non tutte le nazioni utilizzano questi livelli amministrativi. Nella maggior parte dei casi, i nomi brevi administrative_area_level_1corrispondono esattamente alle suddivisioni ISO 3166-2 e ad altri elenchi ampiamente diffusi; tuttavia, questo non è garantito, poiché i nostri risultati di geocodifica si basano su una serie di indicatori e dati sulla posizione.administrative_area_level_2Una divisione amministrativa di secondo livello al di sotto del livello paese. Negli Stati Uniti, questi livelli amministrativi sono le contee. Non tutte le nazioni utilizzano questi livelli amministrativi. administrative_area_level_3Una divisione amministrativa di terzo livello al di sotto del livello paese. Questo tipo indica una divisione civile minore. Non tutte le nazioni utilizzano questi livelli amministrativi. administrative_area_level_4Una divisione amministrativa di quarto livello al di sotto del livello paese. Questo tipo indica una divisione civile minore. Non tutte le nazioni utilizzano questi livelli amministrativi. administrative_area_level_5Una divisione amministrativa di quinto livello al di sotto del livello paese. Questo tipo indica una divisione civile minore. Non tutte le nazioni utilizzano questi livelli amministrativi. administrative_area_level_6Una divisione amministrativa di sesto livello al di sotto del livello paese. Questo tipo indica una divisione civile minore. Non tutte le nazioni utilizzano questi livelli amministrativi. administrative_area_level_7Una divisione amministrativa di settimo livello al di sotto del livello paese. Questo tipo indica una divisione civile minore. Non tutte le nazioni utilizzano questi livelli amministrativi. colloquial_areaUn nome alternativo comunemente utilizzato per l'entità. localityUn'entità politica di una città o un comune incorporato. sublocalityUna divisione amministrativa principale al di sotto di una località. Per alcune località, potresti ricevere uno dei tipi aggiuntivi: da sublocality_level_1asublocality_level_5. Ogni livello di località secondaria è un'entità civile. I numeri più grandi indicano un'area geografica più piccola.neighborhoodUn quartiere con un nome. premiseUna località con un nome, in genere un edificio o un insieme di edifici con un nome comune. subpremiseUn'entità indirizzabile al di sotto del livello dell'edificio, ad esempio un appartamento, un'unità o una suite. plus_codeUn riferimento di località codificato, derivato da latitudine e longitudine. I Plus Code possono essere utilizzati in sostituzione delle vie nei luoghi in cui non esistono (dove gli edifici non sono numerati o le strade non hanno un nome). Per maggiori dettagli, visita la pagina https://plus.codes. postal_codeUn codice postale utilizzato per la spedizione della posta tradizionale nel paese. natural_featureUn elemento naturale di rilievo. airportUn aeroporto. parkUn parco con un nome. point_of_interestUn punto d'interesse con un nome. In genere, questi "PDI" sono entità locali importanti che non rientrano facilmente in un'altra categoria, come "Empire State Building" o "Torre Eiffel". Un elenco vuoto di tipi indica che non esistono tipi noti per il componente dell'indirizzo specifico (ad esempio, Lieu-dit in Francia).
location_type: un filtro di uno o più tipi di località, separati da una barra verticale (|). Se il parametro contiene più tipi di località, l'API restituisce tutti gli indirizzi che corrispondono a uno dei tipi. Nota sull'elaborazione: il parametrolocation_typenon limita la ricerca ai tipi di località specificati. Invece,location_typefunge da filtro post-ricerca: l'API recupera tutti i risultati per illatlngspecificato, quindi scarta i risultati che non corrispondono ai tipi di località specificati. Sono supportati i seguenti valori:"ROOFTOP"restituisce solo gli indirizzi per i quali Google dispone di dati sulla posizione accurati fino alla precisione della via."RANGE_INTERPOLATED"restituisce solo gli indirizzi che riflettono un'approssimazione (di solito su una strada) interpolata tra due punti precisi (ad esempio gli incroci). Un intervallo interpolato generalmente indica che i geocodici dei tetti non sono disponibili per un indirizzo."GEOMETRIC_CENTER"restituisce solo i centri geometrici di una località, ad esempio una polilinea (ad esempio una strada) o un poligono (regione)."APPROXIMATE"restituisce solo gli indirizzi caratterizzati come approssimativi.
extra_computations: utilizza questo parametro per specificare le seguenti funzionalità aggiuntive nella risposta:ADDRESS_DESCRIPTORS: consulta i descrittori di indirizzi per maggiori dettagli.BUILDING_AND_ENTRANCES: per maggiori dettagli, consulta Ingressi e sagome degli edifici.
extra_computationsnella richiesta per ogni funzionalità, ad esempio:extra_computations=ADDRESS_DESCRIPTORS&extra_computations=BUILDING_AND_ENTRANCES
Se sono presenti entrambi i filtri result_type e location_type, l'API restituisce solo i risultati che corrispondono sia ai valori result_type sia ai valori location_type. Se nessuno dei valori del filtro è accettabile, l'API restituisce ZERO_RESULTS.
Esempio di geocodifica inversa
La seguente query contiene il valore di latitudine/longitudine di una località di Brooklyn:
https://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452&key=YOUR_API_KEY
La query precedente restituisce il seguente risultato:
{
"results" : [
{
"address_components" : [
{
"long_name" : "277",
"short_name" : "277",
"types" : [ "street_number" ]
},
{
"long_name" : "Bedford Avenue",
"short_name" : "Bedford Ave",
"types" : [ "route" ]
},
{
"long_name" : "Williamsburg",
"short_name" : "Williamsburg",
"types" : [ "neighborhood", "political" ]
},
{
"long_name" : "Brooklyn",
"short_name" : "Brooklyn",
"types" : [ "sublocality", "political" ]
},
{
"long_name" : "Kings",
"short_name" : "Kings",
"types" : [ "administrative_area_level_2", "political" ]
},
{
"long_name" : "New York",
"short_name" : "NY",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "United States",
"short_name" : "US",
"types" : [ "country", "political" ]
},
{
"long_name" : "11211",
"short_name" : "11211",
"types" : [ "postal_code" ]
}
],
"formatted_address" : "277 Bedford Avenue, Brooklyn, NY 11211, USA",
"geometry" : {
"location" : {
"lat" : 40.714232,
"lng" : -73.9612889
},
"location_type" : "ROOFTOP",
"viewport" : {
"northeast" : {
"lat" : 40.7155809802915,
"lng" : -73.9599399197085
},
"southwest" : {
"lat" : 40.7128830197085,
"lng" : -73.96263788029151
}
}
},
"place_id" : "ChIJd8BlQ2BZwokRAFUEcm_qrcA",
"types" : [ "street_address" ]
},
... Additional <code>results[]</code> ...
Tieni presente che il geocodificatore inverso ha restituito più di un risultato. I risultati di "formatted_address" non sono solo indirizzi postali, ma qualsiasi modo per denominare geograficamente una località. Ad esempio, quando si esegue la geocodifica di un punto nella città di Chicago, il punto geocodificato può essere indicato come via, come città (Chicago), come stato (Illinois) o come paese (Stati Uniti). Tutti questi sono "indirizzi" per il geocodificatore. Il geocodificatore inverso restituisce uno di questi tipi come risultato valido.
Il geocodificatore inverso trova corrispondenze con entità politiche (paesi, province, città e quartieri), indirizzi e codici postali.
Di seguito è riportato l'elenco completo dei valori formatted_address restituiti dalla query precedente.
{
"plus_code" : {
"compound_code" : "P27Q+MCM New York, NY, USA",
"global_code" : "87G8P27Q+MCM"
},
"results" : [
{
"formatted_address" : "277 Bedford Ave, Brooklyn, NY 11211, USA",
...
"types" : [ "street_address" ]
},
{
"formatted_address" : "279 Bedford Ave, Brooklyn, NY 11211, USA",
...
"types" : [ "premise" ]
},
{
"formatted_address" : "277 Bedford Ave, Brooklyn, NY 11211, USA",
...
"types" : [ "establishment", "point_of_interest" ]
},
{
"formatted_address" : "291-275 Bedford Ave, Brooklyn, NY 11211, USA",
...
"types" : [ "route" ]
},
{
"formatted_address" : "P27Q+MC New York, NY, USA",
...
"types" : [ "plus_code" ]
},
{
"formatted_address" : "South Williamsburg, Brooklyn, NY, USA",
...
"types" : [ "neighborhood", "political" ]
},
{
"formatted_address" : "Brooklyn, NY 11211, USA",
...
"types" : [ "postal_code" ]
},
{
"formatted_address" : "Williamsburg, Brooklyn, NY, USA",
...
"types" : [ "neighborhood", "political" ]
},
{
"formatted_address" : "Kings County, Brooklyn, NY, USA",
...
"types" : [ "administrative_area_level_2", "political" ]
},
{
"formatted_address" : "Brooklyn, NY, USA",
...
"types" : [ "political", "sublocality", "sublocality_level_1" ]
},
{
"formatted_address" : "New York, NY, USA",
...
"types" : [ "locality", "political" ]
},
{
"formatted_address" : "New York, USA",
...
"types" : [ "administrative_area_level_1", "political" ]
},
{
"formatted_address" : "United States",
...
"types" : [ "country", "political" ]
}
],
"status" : "OK"
}
Questa API restituisce diversi tipi di indirizzi, da quello più specifico fino a entità politiche meno specifiche come quartieri, città, contee e stati. L'indirizzo più preciso è generalmente il risultato più in evidenza, come in questo caso. Se vuoi trovare un tipo specifico di indirizzo, consulta la sezione seguente su come limitare i risultati per tipo. Per questo motivo, la posizione dei risultati l'uno rispetto all'altro può variare.
Geocodifica inversa filtrata per tipo
L'esempio seguente filtra gli indirizzi restituiti in modo da includere solo quelli con un tipo di località ROOFTOP e un tipo di indirizzo street_address.
https://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452
&location_type=ROOFTOP&result_type=street_address&key=YOUR_API_KEY
Nota: questi filtri sono validi solo per la geocodifica inversa.
Risposte di geocodifica inversa
Il formato della risposta di geocodifica inversa è lo stesso della risposta di geocodifica. Consulta la sezione Risposte di geocodifica. Di seguito sono riportati i codici di stato possibili in una risposta di geocodifica inversa.
Codici di stato della geocodifica inversa
Il campo "status" all'interno dell'oggetto di risposta di Geocoding contiene lo stato della richiesta e può contenere informazioni di debug per aiutarti a capire perché la geocodifica inversa non funziona. Il campo "status" può contenere i seguenti valori:
"OK"indica che non si sono verificati errori ed è stato restituito almeno un indirizzo."ZERO_RESULTS"indica che la geocodifica inversa è andata a buon fine, ma non ha restituito risultati. Questo può accadere se al geocodificatore è stato passato unlatlngin una località remota."OVER_QUERY_LIMIT"indica che hai superato la quota."REQUEST_DENIED"indica che la richiesta è stata rifiutata. È possibile che la richiesta includa un parametroresult_typeolocation_type, ma non una chiave API."INVALID_REQUEST"indica in genere uno dei seguenti problemi:- La query (
address,componentsolatlng) non è presente. - È stato fornito un valore
result_typeolocation_typenon valido.
- La query (
"UNKNOWN_ERROR"indica che non è stato possibile elaborare la richiesta a causa di un errore del server. La richiesta potrebbe andare a buon fine se riprovi.
Geocodifica inversa dei plus code
Il campo plus_code all'interno della risposta di geocodifica contiene un Plus Code che approssima meglio la latitudine e la longitudine della query.
Inoltre, nella maggior parte dei casi l'array di risultati JSON contiene un risultato di geocodifica completo con un tipo plus_code e un indirizzo contenente un Plus Code. La distanza tra il Plus Code decodificato e il punto della richiesta è garantita essere inferiore a 10 metri.