Convalida dell'indirizzo e geocodifica

Obiettivo

Spesso hai bisogno di convalidare la posizione di un luogo. Esistono diversi servizi in Google Maps Platform che possono aiutarti in questo caso d'uso. Questo documento ti aiuta a scegliere tra i due principali servizi di convalida della posizione: l'API Address Validation e l'API Geocoding.

L'API Address Validation è un'offerta di Google Maps Platform che aiuta i clienti a verificare se un indirizzo è accurato o meno.

La geocodifica con l'API Geocoding è il processo di conversione degli indirizzi in coordinate geografiche, che puoi utilizzare per posizionare gli indicatori su una mappa o una posizione sulla mappa.

Una panoramica generale delle differenze tra Address Validation e l'API Geocoding è disponibile qui.

Quando scegliere l'API Address Validation rispetto all'API Geocoding

Address-Validation-vs-Geocoding

Note sul diagramma di flusso riportato sopra:

  • Il caso d'uso dell'interazione utente si riferisce a quando un utente è presente per interagire con i risultati.
  • Place Autocomplete è un'API JavaScript, quindi è adatta per l'integrazione con le interfacce utente.
  • Potresti essere a conoscenza di problemi di qualità dei dati nei tuoi indirizzi esistenti. Quindi, anche se vuoi solo i geocodici, è consigliabile eseguire queste località tramite l'API Address Validation per correggere i set di dati.

In base all'albero decisionale riportato sopra, esistono molte situazioni in cui potresti scegliere di utilizzare un prodotto anziché l'altro. In altre situazioni, invece, potrebbe essere necessario utilizzare entrambi i prodotti per raggiungere i tuoi obiettivi.

Puoi scegliere di utilizzare l'API Address Validation anziché l'API Geocoding quando:

  • Esiste un'alta probabilità di dati discutibili o di ottenere un indirizzo errato che avrà un impatto negativo a valle. Questo perché l'API Address Validation fornisce più feedback sul motivo per cui un input non ha ricevuto un risultato ad alta precisione.
  • Devi correggere gli input dell'utente (ad es. errori ortografici o campi mancanti), il che aumenta la probabilità di un risultato accurato nell'output.
  • La tua regione di destinazione restituisce più metadati dall'API Address Validation rispetto all'API Geocoding, ad esempio la classificazione del tipo di edificio come residenziale o commerciale.

Puoi scegliere di utilizzare la geocodifica anziché l'API Address Validation quando:

  • Il tuo obiettivo principale è recuperare la posizione di un indirizzo e l'accuratezza dei singoli indirizzi potrebbe non essere fondamentale.
    • Ad esempio, potresti voler generare una mappa termica da un set di dati di grandi dimensioni.
  • Hai bisogno di dettagli sulla destinazione iperlocali, come ingressi degli edifici, sagome degli edifici o punti di navigazione per il ritiro e la consegna (disponibili con il metodo SearchDestinations nell'API Geocoding v4).
  • Hai bisogno di una soluzione globale e l'API Address Validation non è disponibile in tutte le regioni target.

Di seguito sono riportati alcuni esempi che mostrano le funzionalità dell'API Address Validation rispetto all'API Geocoding.

Esempio di indirizzo non valido

1 Fake St, Mountain View, CA 94043, USA

L'API Address Validation suddivide questo input nei singoli componenti dell'indirizzo (via, città, stato e così via). Può anche fornire un feedback granulare sul motivo per cui l'indirizzo non è valido fino a un livello PREMISE.

Fake St non esiste a Mountain View, in California, e l'API Address Validation lo riflette nei dettagli restituiti a livello di componente:

{
  "componentName": {
    "text": "Fake St",
    "languageCode": "en"
   },
   "componentType": "route",
   "confirmationLevel":"UNCONFIRMED_BUT_PLAUSIBLE"
 }

La proprietà importante da ispezionare in questo caso è confirmationLevel. Restituendo UNCONFIRMED_BUT_PLAUSIBLE per Fake St, l'API ha stabilito che è possibile che una strada abbia questo nome, ma non è in grado di abbinarlo ai dati dell'indirizzo di supporto.

Utilizzando il risultato dell'API come feedback, si può dedurre che il componente della via di questo input (Fake St) è errato.

Utilizzando lo stesso indirizzo con l'API Geocoding, è possibile trovare una corrispondenza con "California", come mostrato nello screenshot seguente dello strumento Geocoder:

alt_text

Tuttavia, il risultato è un geocodice dell'intero stato, con un feedback minimo su quali componenti dell'input erano potenzialmente errati.

Esempio di errore di ortografia

76 Buckingamm Palace Road, Londn, SW1W 9TQ, GB

L'indirizzo sopra riportato contiene un paio di errori ortografici, uno nel nome della via e l'altro nella località.

Sia l'API Address Validation che l'API Geocoding sono in grado di correggere questi errori e ottenere il risultato 76 Buckingham Palace Road, London, SW1W 9TQ. Tuttavia, l'API Address Validation può fornire ulteriori informazioni sulla procedura.

Diamo un'occhiata a uno dei componenti dell'indirizzo che è stato digitato in modo errato nell'input:

{
  "componentName": {
    "text": "Buckingham Palace Road",
    "languageCode": "en"
        },
        "componentType": "route",
        "confirmationLevel": "CONFIRMED",
        "spellCorrected": true
     }
}

L'API Address Validation restituisce un flag per indicare che è stata apportata una correzione al campo. La logica di business potrebbe essere implementata in base a questo flag per verificare la correzione con il fornitore di dati, ad esempio un cliente in un pagamento di un e-commerce.

Esempio di dati mancanti ed errore ortografico

Bollschestraße 86, 12587, DE

L'indirizzo sopra riportato presenta un errore di ortografia nel nome della via e manca la città (località) di Berlino.

L'API Address Validation è in grado di correggere entrambi gli errori e restituisce un codice geografico a livello di PREMISE e un indirizzo verificato a livello di PREMISE:

Bölschestraße 86, 12587 Berlin, DE

In questo caso, l'API Geocoding non è in grado di superare gli errori di input e restituisce un risultato di ZERO_RESULTS.

Esempio di metadati aggiuntivi dell'indirizzo

111 8th Avenue Ste 123, New York, NY 10011-5201, US

Questo indirizzo è corretto, ad eccezione del numero dell'unità (Ste 123), che non esiste all'interno dell'edificio.

L'API Address Validation è in grado di convalidare l'indirizzo fino al PREMISE (111 8th Ave) e di fornire alcuni metadati sulla proprietà, tra cui il fatto che si tratta di un edificio commerciale

premises:

"business": true

Inoltre, il valore dpvConfirmation restituito come parte di uspsData nella risposta è S:

"dpvConfirmation": "S"

Un valore dpvConfirmation di S indica che l'indirizzo è convalidato al livello PREMISE, ma il numero dell'unità fornito nell'input non è associato a quell'indirizzo.

L'API Geocoding non è in grado di fornire queste informazioni.

Informazioni sulla risposta dell'API Geocoding

Panoramica

Se utilizzi l'API Geocoding, il risultato della geocodifica contiene vari indizi nella risposta che possono essere utilizzati per comprendere i dettagli dell'indirizzo fornito.

L'API Geocoding funziona risolvendo i componenti dell'indirizzo in una gerarchia.

Ad esempio, 123 Example Street, Chicago, 60007, USA viene risolto nel seguente ordine:

/ Example Street/ Chicago/ 60007/ USA verranno valutate in questo ordine. La prima corrispondenza in questo caso è Chicago e, più nello specifico, il codice postale 60007. Pertanto, restituisce il seguente Place_id per quel codice postale:

ChIJwRKzf8ixD4gRHiXqucwr_HQ

L'API Geocoding contiene le seguenti informazioni nella risposta:

        "partial_match": true,
           "place_id": "ChIJwRKzf8ixD4gRHiXqucwr_HQ",
           "types": [
               "postal_code"
           ]

L'API Geocoding può confermare a quale tipo di luogo appartiene questo indirizzo. Un elenco di types di indirizzi restituito dall'API Geocoding è disponibile qui.

Se nessuno dei componenti dell'input viene risolto, l'API restituisce:

{
   "results": [],
   "status": "ZERO_RESULTS"
}

Se effettui una richiesta con solo la via senza il numero civico, viene restituito un risultato nel seguente formato:

"types": [
  "route"
]

Ciò significa che l'API Geocoding non è riuscita a trovare o abbinare un numero civico.

Nota: per sapere se un indirizzo esiste, controlla se uno dei parametri (ad esempio types, partial_match, results, status)) è impostato nella risposta dell'API Geocoding. In questo modo, il livello di confidenza che un indirizzo possa esistere aumenterà gradualmente, ma non sarà accurato al 100%. Ecco perché abbiamo bisogno dell'API Address Validation.

Puoi utilizzare le tecniche descritte sopra per aumentare la fiducia nell'accuratezza dell'indirizzo solo in base alla risposta dell'API Geocoding. Tuttavia, a differenza di un risultato dell'API Address Validation, l'API Geocoding non restituirà un feedback esatto per determinare l'accuratezza del risultato.

Tipo di posizione

Per comprendere correttamente questa sezione, devi conoscere i diversi tipi di località che potrebbero essere restituiti da una risposta dell'API Geocoding:

  • ROOFTOP indica che il risultato restituito è un geocodice preciso per il quale disponiamo di dati sulla posizione accurati fino alla precisione dell'indirizzo.
  • RANGE_INTERPOLATED indica che il risultato restituito riflette un'approssimazione (di solito su una strada) interpolata tra due punti precisi (ad esempio gli incroci). In genere, i risultati interpolati vengono restituiti quando i geocodici di tipo ROOFTOP non sono disponibili per un indirizzo.
  • GEOMETRIC_CENTER indica che il risultato restituito è il centro geometrico di un risultato come una polilinea (ad esempio una strada) o un poligono (regione).
  • APPROXIMATE indica che il risultato restituito non è nessuno dei precedenti.

Se un'API Geocoding restituisce un location_type di ROOFTOP o RANGE_INTERPOLATED, non significa necessariamente che l'indirizzo esista. Analogamente, se un'API Geocoding restituisce il flag partial_match impostato su true, potrebbe comunque essere il risultato giusto per te.

Questo tipo di corrispondenza errata è un problema molto difficile da risolvere con l'API Geocoding. Come minimo, potresti prendere in considerazione l'implementazione di una convalida di base post-elaborazione sul paese e sulla località della richiesta/risposta. Ancora meglio, confronta gli indirizzi effettivi per verificare la presenza di errori ortografici e/o di un indirizzo incompleto.

Nota: se decidi di utilizzare l'API Geocoding, ti consigliamo di eseguire regolarmente controlli della qualità dei dati tra la richiesta iniziale e la risposta dell'API Geocoding.

Corrispondenza parziale e corrispondenza errata

Se un indirizzo è una corrispondenza parziale, ovvero l'API Geocoding non è riuscita a identificare esattamente l'indirizzo, la risposta contiene:

"partial_match": true,
"types": [
           "locality",
           "political"
         ]

Ancora più importante dei tipi di località sopra indicati è considerare quando partial_match = true è nella risposta. partial_match indica che l'API Geocoding non ha restituito una corrispondenza esatta per la richiesta originale, anche se è stata in grado di trovare una corrispondenza per parte dell'indirizzo richiesto.

Potresti voler esaminare la richiesta originale per un indirizzo incompleto. Le corrispondenze parziali si verificano più spesso per gli indirizzi che non esistono nella località specificata nella richiesta. Le corrispondenze parziali possono essere restituite anche quando una richiesta corrisponde a due o più località nella stessa località.

Ad esempio, "21 Henr St, Bristol, UK" restituisce una corrispondenza parziale sia per Henry Street sia per Henrietta Street. Tieni presente che se una richiesta include un componente dell'indirizzo con errori di ortografia, l'API Geocoding potrebbe suggerire un indirizzo alternativo. I suggerimenti attivati in questo modo non verranno contrassegnati come corrispondenza parziale.

Indirizzi sintetici

L'API Geocoding potrebbe restituire posizioni per indirizzi"sintetici" che non esistono come posizioni precise nel database di Google.

In questi scenari, l'oggetto della risposta spesso contiene un ID luogo lungo e la seguente proprietà: geometry.location_type=APPROXIMATE.

Se trovi questi indicatori nella risposta, ti consigliamo di contrassegnare l'indirizzo di input come non valido e di provare a convalidarlo nuovamente con un altro metodo.

Nota: questo è un altro esempio in cui con l'API Address Validation ricevi un feedback diretto se un indirizzo non esiste.

Informazioni sulla risposta dell'API Address Validation

Esiste già un'ottima documentazione su come comprendere le risposte dell'API Address Validation, quindi non entreremo in ulteriori dettagli qui.

  • Puoi trovare una panoramica dell'oggetto della risposta qui.
  • La demo che illustra i diversi componenti della risposta è disponibile qui
  • Nel documento Address Validation per il pagamento è presente una descrizione dettagliata di come distinguere gli indirizzi validi da quelli non validi.

Best practice

Specifica dell'area geografica

Quando effettui chiamate alle API Address Validation o API Geocoding, è buona norma cercare di limitare l'area geografica in cui cercare l'indirizzo. Le due API implementano questa funzionalità in due modi diversi:

  • API Geocoding - Bias per regione

    Se sai che i geocodici si troveranno all'interno di un determinato paese, otterrai risultati molto migliori utilizzando la personalizzazione della regione. Ad esempio, se esegui la geocodifica in Canada, ti consigliamo di aggiungere &region=ca alle tue richieste per dare priorità al Canada. Tieni presente che la polarizzazione per regione preferisce solo i risultati all'interno di quella regione. Puoi comunque ricevere risultati al di fuori della regione.

  • API Address Validation - Codice regione

    Allo stesso modo, l'API Address Validation produce risultati più accurati se nella richiesta viene passato un codice ISO2 utilizzando il campo regionCode.

Memorizzazione degli ID luogo

Per memorizzare le informazioni di Google Maps Platform sulla posizione per richieste future, puoi memorizzare l'ID luogo a tempo indeterminato nel tuo database come attributo della posizione. Dovresti effettuare una richiesta Trova luogo una sola volta per placeID. Puoi anche cercare l'ID luogo ogni volta che un utente richiede i dettagli della transazione.

Per avere sempre le informazioni più aggiornate, aggiorna gli ID luogo ogni 12 mesi utilizzando una richiesta Place Details con il parametro place_id.

Nota: assicurati di consultare anche la guida alle best practice per il geocoding.

Conclusione

Questo documento descrive le principali differenze tra le API Address Validation e Geocoding. In sintesi, valuta la possibilità di utilizzare l'API Address Validation quando:

  • È necessario un indirizzo postale preciso, soprattutto per garantire la consegna.
  • I dati di input sono di scarsa qualità. L'API Address Validation è più tollerante agli errori di input, evidenzia i componenti dell'indirizzo non verificabili e apporta correzioni ai dati di input.
  • Sono necessarie ulteriori informazioni per un indirizzo, ad esempio se si tratta di un indirizzo residenziale o commerciale (disponibile in alcune regioni).

Passaggi successivi

Scarica il white paper Migliora pagamento, consegna e operazioni con indirizzi affidabili e guarda il webinar Migliora pagamento, consegna e operazioni con Address Validation .

Letture consigliate:

Collaboratori

Google gestisce questo articolo. I seguenti collaboratori l'hanno scritta originariamente.

Autori principali:

Henrik Valve | Solutions Engineer

Thomas Anglaret | Solutions Engineer

Sarthak Ganguly | Solutions Engineer