Richiesta e risposta di geocodifica inversa (ricerca di indirizzi)

Il termine geocodifica si riferisce in genere alla traduzione di un testo leggibile indirizzo in una posizione su una mappa. Per fare il contrario, tradurre una posizione sulla mappa in un indirizzo leggibile, è nota come geocodifica inversa.

Inverti richieste di geocodifica

Parametri obbligatori

  • latlng: latitudine e longitudine coordinate che specificano la posizione per cui vuoi il più vicino, un indirizzo leggibile.
  • key: chiave API dell'applicazione. Questa chiave identifica per la gestione della quota. Scopri come ottenere una chiave.

Parametri facoltativi

Questi sono i parametri facoltativi che puoi includere in richiesta di geocodifica:

  • language: la lingua in cui restituire i risultati.
    • Consulta l'elenco delle lingue. Google aggiorna spesso le lingue supportate, pertanto questo potrebbe non essere esaustivo.
    • Se language non viene specificato, il geocodificatore tenta di utilizzare la lingua preferita specificata nel Accept-Language o la lingua nativa del dominio da cui viene inviata la richiesta.
    • Il geocodificatore fa del suo meglio per fornire un indirizzo civico illeggibile sia per l'utente che per la gente del posto. Per raggiungere questo obiettivo, restituisce le vie nella lingua locale, traslitterate in una leggibile dall'utente se necessario, rispettando lo script preferito lingua. Tutti gli altri indirizzi vengono restituiti nel formato lingua. I componenti dell'indirizzo vengono restituiti nella stessa lingua che viene scelto dal primo componente.
    • Se un nome non è disponibile nella lingua preferita, il geocodificatore utilizza la corrispondenza più simile.
  • region: il codice regione, specificato come ccTLD ("dominio di primo livello") valore a due caratteri. Il parametro può anche influire di Google in base alle leggi vigenti.
  • result_type: un filtro di uno o più tipi di indirizzi, separate da una barra verticale (|). Se il parametro contiene più di indirizzi, l'API restituisce tutti gli indirizzi che corrispondono a uno qualsiasi di questi tipi. Una nota sull'elaborazione: il parametro result_type non limita la ricerca ai tipi di indirizzi specificati. Piuttosto, result_type funge da filtro post-ricerca: l'API recupera tutti risultati per il valore latlng specificato, poi ignora questi risultati che non corrispondono ai tipi di indirizzi specificati. I seguenti valori sono supportati:
      .
    • street_address indica un indirizzo preciso.
    • route indica un percorso denominato (ad esempio "US 101").
    • intersection indica un incrocio principale, di solito di due strade principali.
    • political indica un'entità politica. Di solito, questo tipo indica il poligono di qualche amministrazione civile.
    • country indica l'entità politica nazionale e pertanto è di solito è il tipo di ordine più alto restituito dal Geocoder.
    • administrative_area_level_1 indica un'autorità civile di primo ordine inferiore a quella del paese. Negli Stati Uniti, i livelli amministrativi sono gli stati. Non tutte le nazioni mostrano questi a livello amministrativo. Nella maggior parte dei casi, admin_area_level_1 i nomi brevi corrisponderanno esattamente alle suddivisioni ISO 3166-2 e ad altre liste diffuse; Tuttavia, questo non è garantito in quanto i nostri risultati di geocodifica si basano su vari indicatori e dati sulla posizione.
    • administrative_area_level_2 indica un'autorità civile di secondo ordine inferiore a quella del paese. Negli Stati Uniti, i livelli amministrativi sono contee. Non tutte le nazioni mostrano questi a livello amministrativo.
    • administrative_area_level_3 indica un'autorità civile di terzo ordine inferiore a quella del paese. Questo tipo indica un ente civile minore. Non tutte le nazioni presentano questi livelli amministrativi.
    • administrative_area_level_4 indica un ordine civile di quarto ordine inferiore a quella del paese. Questo tipo indica un ente civile minore. Non tutte le nazioni presentano questi livelli amministrativi.
    • administrative_area_level_5 indica un'autorità civile di quinto ordine inferiore a quella del paese. Questo tipo indica un ente civile minore. Non tutte le nazioni presentano questi livelli amministrativi.
    • administrative_area_level_6 indica un civile di sesto ordine inferiore a quella del paese. Questo tipo indica un ente civile minore. Non tutte le nazioni presentano questi livelli amministrativi.
    • administrative_area_level_7 indica un'autorità civile di settimo ordine inferiore a quella del paese. Questo tipo indica un ente civile minore. Non tutte le nazioni presentano questi livelli amministrativi.
    • colloquial_area indica un nome alternativo di uso comune per l'entità.
    • locality indica una città o una città politica dell'oggetto.
    • sublocality indica una persona giuridica di primo ordine sotto una località. Per alcune località potrebbero essere disponibili i seguenti tipi aggiuntivi: Da sublocality_level_1 a sublocality_level_5. Ogni livello di circoscrizione è un'entità civile. Numeri più grandi indicano una minore geografica specifica.
    • neighborhood indica un quartiere denominato
    • premise indica una località denominata, di solito un edificio o insieme di edifici con un nome comune
    • subpremise indica un'entità di primo ordine sotto un nome posizione, di solito un singolo edificio all'interno di una serie di edifici con un nome comune
    • plus_code indica un riferimento a località codificato, derivato da latitudine e longitudine. I Plus Code possono essere utilizzati in sostituzione di indirizzi in luoghi in cui non esistono (in cui gli edifici non sono numerati o le vie non hanno un nome). Vedi https://plus.codes per maggiori dettagli.
    • postal_code indica un codice postale utilizzato per gestire la posta all'interno del paese.
    • natural_feature indica una caratteristica naturale in evidenza.
    • airport indica un aeroporto.
    • park indica un parco denominato.
    • point_of_interest indica un punto d'interesse con nome. In genere, questi "PDI" sono entità locali di rilievo che non si adattano facilmente In un'altra categoria, ad esempio "Empire State Building" o "Torre Eiffel".
  • location_type: un filtro di uno o più tipi di località, separate da una barra verticale (|). Se il parametro contiene più tipi di località, l'API restituisce tutti gli indirizzi che corrispondono a uno qualsiasi di questi tipi. Una nota sull'elaborazione: il parametro location_type non limita la ricerca ai tipi di località specificati. Piuttosto, location_type funge da filtro post-ricerca: l'API recupera tutti risultati per il valore latlng specificato, poi ignora questi risultati che non corrispondono ai tipi di località specificati. Sono supportati i seguenti valori:
    • "ROOFTOP" restituisce solo gli indirizzi per i quali Google le informazioni sulla posizione sono precise con una precisione all'indirizzo.
    • "RANGE_INTERPOLATED" restituisce solo gli indirizzi che riflettono un'approssimazione (di solito su una strada) interpolata tra due punti precisi (come gli incroci). Un intervallo interpolato in genere indica che i codici geografici del tetto non sono disponibili per un indirizzo civico.
    • "GEOMETRIC_CENTER" restituisce solo elementi geometrici centri di una località, come una polilinea (ad esempio una strada) poligono (regione).
    • "APPROXIMATE" restituisce solo gli indirizzi che sono sono caratterizzati come approssimati.
  • extra_computations: utilizza questo parametro per specificare la le seguenti funzionalità aggiuntive nella risposta: Per abilitare più di queste funzionalità per la stessa richiesta API, includi il parametro extra_computations nella richiesta per ogni caratteristica, 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 a result_type che a location_type valori. Se nessuno dei valori del filtro è accettabile, il parametro L'API restituisce ZERO_RESULTS.

Esempio di geocodifica inversa

La seguente query contiene il valore di latitudine/longitudine per una località a 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. La I risultati di "formatted_address" non sono solo indirizzi postali, ma assegnare un nome geografico a una località. Ad esempio, quando geocodifica un punto nella città di Chicago, il punto geocodificato può essere indicato come un indirizzo, come città (Chicago), come stato (Illinois) o come paese (Stati Uniti Stati). Tutti sono "indirizzi" al geocodificatore. Il geocodificatore inverso restituisce uno qualsiasi di questi tipi come risultati validi.

Il geocodificatore inverso corrisponde a entità politiche (paesi, province, città e quartieri), vie e codici postali.

L'elenco completo di formatted_address valori restituiti dal della query precedente è mostrata di seguito.

{
   "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, dal più specifico indirizzi a entità politiche meno specifiche come quartieri, città, contee e stati. L'indirizzo più esatto è generalmente un risultato ben visibile, come in questo caso. Se vuoi abbinare un tipo specifico di di destinazione, consulta la sezione su come limitare i risultati per tipo. Per questo motivo, la posizione dei risultati rispetto a tra loro possono variare.

Geocodifica inversa filtrata per tipo

L'esempio seguente filtra gli indirizzi restituiti per includere solo quelli con tipo di località ROOFTOP e 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.

Inverti le risposte di geocodifica

Il formato della risposta di geocodifica inversa è lo stesso della risposta di geocodifica risposta. Consulta la sezione Risposte di geocodifica. Di seguito sono riportati i codici di stato possibili in una risposta di geocodifica inversa.

Inverti codici di stato di geocodifica

Il campo "status" dell'oggetto di risposta Geocoding contiene lo stato della richiesta e potrebbe contenere informazioni di debug per aiutarti scoprire perché la geocodifica inversa non funziona. "status" può contenere i seguenti valori:

  • "OK" indica che non si sono verificati errori e che è presente almeno uno è stato restituito.
  • "ZERO_RESULTS" indica che la geocodifica inversa era è riuscita, ma non ha restituito alcun risultato. Ciò può verificarsi se il geocodificatore è ha passato un latlng in una località remota.
  • "OVER_QUERY_LIMIT" indica che hai superato quota.
  • "REQUEST_DENIED" indica che la richiesta è stata rifiutata. Forse perché la richiesta include un result_type o location_type ma non include una chiave API.
  • "INVALID_REQUEST" indica in genere una delle seguenti condizioni:
    • La query (address, components o latlng) mancante.
    • Valore result_type o location_type non valido: fornite.
  • "UNKNOWN_ERROR" indica che non è stato possibile inviare la richiesta elaborati a causa di un errore del server. La richiesta può avere esito positivo se Riprova.

Plus Code di geocodifica invertita

Il campo plus_code nella risposta di geocodifica contiene un plus code che si avvicina al valore di latitudine e longitudine della query. Inoltre, nella maggior parte dei casi l'array di risultati JSON contiene una funzione di geocodifica completa risultato con un tipo plus_code e un indirizzo contenente un segno più le API nel tuo codice. La distanza tra il plus code decodificato e il punto di richiesta è inferiore a 10 metri.