Los métodos GeocodeAddress y SearchDestinations admiten un parámetro effort opcional que te permite controlar el equilibrio entre la latencia de respuesta y la exactitud de la resolución de direcciones.
Si bien la geocodificación estándar controla las direcciones postales con un formato correcto en una latencia de menos de un segundo, las entradas del mundo real suelen ser incompletas, informales o complejas (por ejemplo, "Flat 4B, Sunrise Apartments, opposite Central Mall, Andheri West,
Mumbai" o "where the warriors play, sf"). Si configuras un nivel de effort más alto, puedes indicarle a la API de Geocoding que aplique un razonamiento y una desambiguación extendidos para resolver direcciones difíciles.
Niveles de esfuerzo
Especifica uno de los siguientes valores para el parámetro effort:
| Nivel de esfuerzo | Descripción | Latencia típica | Casos de uso recomendados |
|---|---|---|---|
EFFORT_UNSPECIFIED |
Valor predeterminado Se comporta de la misma manera que el esfuerzo LOW. |
Menos de un segundo | Geocodificación estándar predeterminada. |
LOW |
Optimiza los tiempos de respuesta más rápidos. No realiza búsquedas extendidas ni desambiguaciones para direcciones difíciles. | Menos de un segundo | Búsqueda interactiva en tiempo real y Address Validation estándar de gran volumen. |
MEDIUM |
Equilibra la velocidad y la exactitud. La mayoría de las solicitudes se devuelven con una latencia baja estándar. En el caso de direcciones ambiguas o difíciles, el servicio aplica un procesamiento adicional para mejorar la precisión, lo que puede tardar hasta unos segundos. | Menos de un segundo para las direcciones estándar; hasta unos segundos (≤ 4 segundos) para las direcciones ambiguas | Flujos de trabajo interactivos de los usuarios (como la confirmación de la dirección en la confirmación de la compra) en los que los usuarios pueden tolerar una breve pausa |
HIGH |
Maximiza la precisión de la resolución de direcciones para direcciones incompletas, informales o complejas. Los tiempos de respuesta podrían ser significativamente más largos. | Hasta 20 segundos para direcciones complejas | Procesamiento en segundo plano, geocodificación por lotes, despacho de logística o perfeccionamiento asíncrono de direcciones después de la confirmación de la compra. |
Ejemplos de solicitudes
Buscar destinos (SearchDestinations)
Incluye el campo effort en el cuerpo de la solicitud JSON de tu solicitud POST a
https://geocode.googleapis.com/v4alpha/geocode/destinations. El parámetro effort
afecta principalmente la resolución de 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 una dirección (GeocodeAddress)
Pasa el parámetro effort como un parámetro de consulta de URL en tu solicitud GET al
extremo /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"
Mitiga el impacto de la latencia
Cuando usas el esfuerzo MEDIUM o HIGH en tu aplicación, enviar una solicitud de un solo paso es la integración más sencilla, pero las solicitudes en estos modos pueden generar una latencia más alta, lo que puede retrasar los flujos de trabajo síncronos, para el usuario y sensibles a la latencia.
Para mitigar este impacto de la latencia en los flujos de usuarios interactivos (como el de confirmación de la compra o la reserva), puedes usar un flujo de trabajo de varios pasos:
- Paso 1 (interactivo): Envía una solicitud síncrona con
effort=LOW(o el valor predeterminado) para validar la dirección de inmediato con una latencia de menos de un segundo. - Paso 2 (en segundo plano): Envía una solicitud de seguimiento asíncrona con
effort=MEDIUMoeffort=HIGH(por ejemplo, después de la confirmación de la compra o antes del envío) para resolver direcciones complejas en coordenadas, entradas y puntos de navegación de alta precisión sin bloquear al usuario.
Límites de uso
Durante la etapa de lanzamiento experimental (v4alpha), las solicitudes con effort configurado como
MEDIUM o HIGH están sujetas a límites de frecuencia más estrictos que las solicitudes
estándar (LOW). Si tu aplicación supera estos límites de frecuencia, la API devuelve un error
RESOURCE_EXHAUSTED (HTTP 429). Si encuentras errores HTTP 429 o
necesitas una cuota más alta para tu caso de uso, comunícate con nosotros a través del
canal de comentarios.
Comentarios
Esta es una función experimental de la API de Geocoding. Agradeceríamos que nos envíes tus comentarios a geocoding-feedback-channel@google.com.