I metodi GeocodeAddress
e SearchDestinations
supportano un parametro effort facoltativo che consente di controllare il
compromesso tra la latenza della risposta e l'accuratezza della risoluzione degli indirizzi.
Mentre il geocoding standard gestisce gli indirizzi postali ben formattati con una latenza inferiore al secondo, gli input reali sono spesso incompleti, informali o complessi (ad esempio "Flat 4B, Sunrise Apartments, opposite Central Mall, Andheri West,
Mumbai" o "where the warriors play, sf"). Configurando un livello effort più elevato, puoi indicare all'API Geocoding di applicare un ragionamento e una disambiguazione estesi per risolvere gli indirizzi difficili.
Livelli di impegno
Specifica uno dei seguenti valori per il parametro effort:
| Livello di impegno | Descrizione | Latenza tipica | Casi d'uso consigliati |
|---|---|---|---|
EFFORT_UNSPECIFIED |
Valore predefinito. Si comporta come l'effort LOW. |
Sub-second | Geocodifica standard predefinita. |
LOW |
Ottimizza per i tempi di risposta più rapidi. Non esegue ricerche estese o disambiguazione per indirizzi difficili. | Sub-second | Ricerca interattiva in tempo reale, Address Validation standard ad alto volume. |
MEDIUM |
Bilancia velocità e accuratezza. La maggior parte delle richieste viene restituita con una bassa latenza standard. Per indirizzi ambigui o difficili, il servizio applica un'elaborazione aggiuntiva per migliorare l'accuratezza, che potrebbe richiedere fino a qualche secondo. | Meno di un secondo per gli indirizzi standard; fino a pochi secondi (≤ 4 secondi) per gli indirizzi ambigui | Flussi di lavoro interattivi degli utenti (come la conferma dell'indirizzo al momento del pagamento) in cui gli utenti possono tollerare una breve pausa. |
HIGH |
Massimizza l'accuratezza della risoluzione degli indirizzi per indirizzi incompleti, informali o complessi. I tempi di risposta potrebbero essere notevolmente più lunghi. | Fino a 20 secondi per indirizzi complessi | Elaborazione in background, geocodifica in batch, spedizione logistica o perfezionamento asincrono dell'indirizzo dopo il pagamento. |
Esempi di richieste
Cerca destinazioni (SearchDestinations)
Includi il campo effort nel corpo della richiesta JSON della richiesta POST a https://geocode.googleapis.com/v4alpha/geocode/destinations. Il parametro effort influisce principalmente sulla risoluzione di addressQuery:
curl -X POST -d '{
"addressQuery": {
"addressQuery": "Flat 4B, Sunrise Apartments, opposite Central Mall, Andheri West, Mumbai"
},
"effort": "HIGH"
}' \
-H 'Content-Type: application/json' \
-H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: *" \
https://geocode.googleapis.com/v4alpha/geocode/destinations
Geocodifica un indirizzo (GeocodeAddress)
Passa il parametro effort come parametro di query URL nella richiesta GET all'endpoint /v4alpha/:
curl -X GET -H 'Content-Type: application/json' \ -H "X-Goog-Api-Key: API_KEY" \ "https://geocode.googleapis.com/v4alpha/geocode/address/where+the+warriors+play,+sf?effort=MEDIUM"
Mitigazione dell'impatto della latenza
Quando utilizzi l'effort MEDIUM o HIGH nella tua applicazione, l'invio di una richiesta single-pass è l'integrazione più semplice, ma le richieste in queste modalità possono comportare una latenza più elevata, che può ritardare i workflow sincroni, rivolti agli utenti e sensibili alla latenza.
Per mitigare questo impatto della latenza sui flussi utente interattivi (come il pagamento o la prenotazione), puoi utilizzare un flusso di lavoro in più passaggi:
- Passaggio 1 (interattivo): invia una richiesta sincrona con
effort=LOW(o predefinito) per convalidare immediatamente l'indirizzo con una latenza inferiore al secondo. - Passaggio 2 (background): invia una richiesta di follow-up asincrona con
effort=MEDIUMoeffort=HIGH(ad esempio, dopo il pagamento o prima della spedizione) per risolvere indirizzi complessi in coordinate, ingressi e punti di navigazione ad alta precisione senza bloccare l'utente.
Limiti di utilizzo
Durante la fase di lancio sperimentale (v4alpha), le richieste con effort impostato su MEDIUM o HIGH sono soggette a limiti di frequenza più severi rispetto alle richieste standard (LOW). Se la tua applicazione supera questi limiti di frequenza, l'API restituisce un errore RESOURCE_EXHAUSTED (HTTP 429). Se riscontri errori HTTP 429 o hai bisogno di una quota più elevata per il tuo caso d'uso, contattaci tramite il canale di feedback.
Feedback
Questa è una funzionalità sperimentale dell'API Geocoding. Apprezziamo i feedback all'indirizzo geocoding-feedback-channel@google.com.