La geocodificación es el proceso que convierte direcciones (como la dirección de una calle) en coordenadas geográficas (latitud y longitud) que puedes usar para colocar marcadores en un mapa o posicionar el mapa. El objetivo de este documento es aclarar las consideraciones relacionadas con la geocodificación de direcciones. Describe cuándo es óptimo usar la API de Geocoding y cuándo es beneficioso usar el servicio Place Autocomplete de la API de Places.
En general, usa la API de Geocoding cuando geocodificas direcciones completas (por ejemplo, "48 Pirrama Rd, Pyrmont, NSW, Australia"). Usa el servicio Place Autocomplete de la API de Places cuando geocodificas direcciones ambiguas (incompletas) o para aplicaciones sensibles a la latencia, como cuando respondes a entradas del usuario.
Casos de uso y recomendaciones de API
Casos de uso y recomendaciones de API | |
---|---|
Responder en tiempo real a las entradas del usuario (incluye direcciones ambiguas, incompletas, con formato erróneo o con errores ortográficos ingresadas por un usuario) | Utiliza el servicio Place Autocomplete de la API de Places para obtener un ID de lugar y, luego, la API de Geocoding para geocodificar el ID de lugar en un valor latlng. |
Sistemas automatizados que procesan direcciones postales completas y inequívocas (por ejemplo, “48 Pirrama Rd, Pyrmont, NSW, Australia”) | Usa el servicio web de la API de Geocoding. |
Sistemas automatizados que procesan consultas ambiguas (por ejemplo, direcciones incompletas, con formato incorrecto o con errores de ortografía) | Se recomienda que los sistemas automatizados usen el servicio web de la API de Geocoding. Sin embargo, los sistemas automatizados con una alta tasa de búsquedas ambiguas, incompletas o con errores ortográficos derivadas de las entradas de los usuarios pueden beneficiarse si agregas un widget interactivo de Place Autocomplete para permitir que los usuarios seleccionen un resultado y, así, evitar escribir una dirección con errores de ortografía. |
Problemas de latencia cuando se usa la API de Directions o la de Distance Matrix con orígenes, destinos o puntos de referencia especificados como strings de direcciones | Reduce la latencia de geocodificación con el servicio Place Autocomplete de la API de Places para obtener IDs de lugar y, luego, pásalos a las APIs de Directions o de Distance Matrix. |
Responder a entradas del usuario
Las aplicaciones que responden en tiempo real a las entradas del usuario tienen dos consideraciones principales que afectan la elección de la API:
- Por lo general, las entradas del usuario implican ingresar una dirección de manera progresiva (como "Calle Principal 123"), por lo que es beneficioso geocodificar direcciones incompletas y ambiguas, ya que le permite obtener un resultado más rápido.
- Las aplicaciones que responden a entradas del usuario son muy sensibles a la latencia.
Estas dos consideraciones hacen que el servicio Place Autocomplete de la API de Places sea ideal para el caso práctico de responder a las entradas de los usuarios. Place Autocomplete está diseñado para mostrar varias opciones posibles y permitir que el usuario elija una de ellas. Se puede restringir la API de Places para que solo busque geocódigos o direcciones y excluya empresas. Además, la función de búsqueda con autocompletado se puede personalizar para mostrar resultados específicos de una ubicación. La API de Places muestra un ID de lugar que se puede pasar al servicio web de la API de Geocoding como una ubicación completamente inequívoca. Luego, este muestra los detalles completos de la dirección y la geocodifica en un valor latlng. Los IDs de lugar también se pueden pasar a otras APIs, como las APIs de Directions y de Distance Matrix (consulta a continuación).
La geocodificación de direcciones en la API de Geocoding tiene una latencia mucho mayor y produce resultados menos precisos para consultas incompletas o ambiguas. Por lo tanto, no se recomienda para aplicaciones que deban responder en tiempo real a las entradas del usuario.
Obtén más información sobre el servicio Place Autocomplete para Android, iOS, JavaScript y la API de Places.
Sistemas automatizados
Sistemas automatizados que procesan direcciones postales completas, inequívocas y sin ambigüedades: La mejor manera de gestionar consultas inequívocas, como strings de direcciones postales completas (por ejemplo, "48 Pirrama Rd, Pyrmont, NSW, Australia") es el servicio web de la API de Geocoding. El backend de geocodificación de direcciones proporciona una mayor cobertura de direcciones a nivel global y está optimizado para obtener resultados de alta calidad con estos tipos de consultas completas y sin ambigüedades.
Consultas ambiguas de procesamiento de sistemas automatizados: Las consultas ambiguas son aquellas que contienen direcciones con formato incorrecto, direcciones incompletas o errores ortográficos. En el caso de los sistemas automatizados, recomendamos usar el servicio web de la API de Geocoding. No obstante, la API de Geocoding no está diseñada para manejar consultas ambiguas y puede generar resultados menos precisos o nulos en respuesta a consultas ambiguas. Si tu sistema automatizado procesa una tasa alta de consultas ambiguas que derivan de entradas de usuarios, puedes beneficiarte de agregar un elemento interactivo a tu app usando el servicio Place Autocomplete de la API de Places, ya que está diseñado para mostrar varias opciones posibles y permitir que el usuario las elija. La API de Places muestra un ID de lugar que se puede pasar al servicio web de la API de Geocoding como una ubicación completamente inequívoca. Luego, este muestra los detalles completos de la dirección y la geocodifica en valores latlng. Obtén más información sobre el servicio Place Autocomplete para Android, iOS, JavaScript y la API de Places.
Cómo reducir la latencia en las APIs de Directions y de Distance Matrix
Cuando los orígenes, destinos o puntos de referencia se especifican como cadenas de direcciones, la API de Directions y la API de Distance Matrix usan el mismo backend que la API de Geocoding para geocodificar esas direcciones antes de calcular las instrucciones sobre cómo llegar. Esto aumenta la latencia de forma significativa en comparación con la especificación de las mismas ubicaciones que los valores latlng o IDs de lugar.
Si tu aplicación usa la API de Directions o la API de Distance Matrix en una situación sensible a la latencia, como responder a entradas del usuario, y tus orígenes, destinos o puntos de referencia se especifican inicialmente como cadenas de dirección, te recomendamos que minimices la latencia usando el servicio Place Autocomplete de la API de Places para convertir las cadenas de dirección en IDs de lugar y, luego, pasas los IDs de lugar a la API de Directions o a la API de Distance Matrix. Obtén más información sobre el servicio Place Autocomplete para Android, iOS, JavaScript y la API de Places. Consulta también un ejemplo de JavaScript sobre instrucciones sobre cómo llegar y autocompletado de lugares.
Conclusión
Según el caso de uso, al aplicar la geocodificación de direcciones, usar la API de Geocoding o usar el servicio Place Autocomplete junto con la API de Geocoding te permite crear aplicaciones que ofrezcan a los usuarios resultados de geocodificación precisos y una latencia reducida.
Gestionar errores y reintentos
Si recibes respuestas UNKNOWN_ERROR
, se deben a errores transitorios y la mejor forma de solucionar esto es volver a intentarlo después de un retraso breve. Te recomendamos que utilices las
bibliotecas cliente de los servicios web de Google Maps Platform, que incluyen la lógica de reintento y admiten la autenticación del plan Premium de Google Maps Platform.
Java Client, Python, Go Client y Node.js Client para servicios de Google Maps son bibliotecas cliente compatibles con la comunidad y están disponibles para descargar y realizar contribuciones en GitHub. Allí también encontrarás instrucciones de instalación y código de muestra.
Si obtienes un código de estado OVER_QUERY_LIMIT
como respuesta, significa que superaste los límites de uso de la API. Te recomendamos
que pruebes estas
estrategias de optimización de uso.