Prácticas recomendadas para la geocodificación de direcciones

La geocodificación es el proceso que convierte direcciones (como una dirección particular) en coordenadas geográficas (latitud y longitud) que puedes usar para colocar marcadores en un mapa o posicionarlo. El objetivo de este documento es aclarar las consideraciones que se deben tener en cuenta cuando se geocodifican direcciones. En ella, se describe cuándo es mejor 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 geocodifiques direcciones completas (por ejemplo, "48 Pirrama Rd, Pyrmont, NSW, Australia"). Usa el servicio Place Autocomplete de la API de Places cuando geocodifiques 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 incorrecto o con errores ortográficos que ingresa un usuario) Usa 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 una latlng.
Sistemas automatizados que procesan direcciones postales completas, inequívocas y precisas (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 ortográficos) Se recomienda que los sistemas automatizados usen el servicio web de la API de Geocoding. Sin embargo, los sistemas automatizados con un alto porcentaje de consultas ambiguas, incompletas o con errores ortográficos derivados de las entradas del usuario pueden beneficiarse de agregar un widget interactivo de Place Autocomplete para permitir que los usuarios seleccionen un resultado y, así, evitar escribir mal una dirección.
Problemas de latencia con la API de Directions o la API de Distance Matrix, con orígenes, destinos o puntos de referencia especificados como cadenas de direcciones Reduce la latencia de la geocodificación con el servicio Place Autocomplete de la API de Places para obtener los IDs de lugar y, luego, pásalos a la API de Directions o a la API de Distance Matrix.

Cómo responder a las 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:

  1. La entrada del usuario suele implicar ingresar una dirección de forma progresiva (como "123 Main Street"), por lo que poder geocodificar direcciones incompletas y ambiguas es beneficioso, ya que permite que el usuario obtenga un resultado más rápido.
  2. Las aplicaciones que responden a entradas del usuario son muy sensibles a la latencia.

Estas dos consideraciones hacen que el servicio de Place Autocomplete en la API de Places sea ideal para el caso de uso de responder a la entrada del usuario. La función Autocomplete de lugares está diseñada para mostrar varias opciones posibles y permitir que el usuario elija entre ellas. La API de Places se puede restringir para buscar solo geocódigos o direcciones y, al mismo tiempo, excluir empresas. Además, la función de búsqueda de autocompletado se puede sesgar para mostrar resultados específicos de una ubicación. La API de Places muestra un ID de lugar que se puede pasar como una ubicación completamente desambiguada al servicio web de la API de Geocoding, que luego muestra los detalles completos de la dirección y geocodifica la dirección en una latlng. Los IDs de lugar también se pueden pasar a otras APIs, como la API de Directions y la API de Distance Matrix (consulta a continuación).

La geocodificación de direcciones en la API de Geocoding tiene una latencia mucho más alta y también produce resultados menos precisos para las consultas incompletas o ambiguas, por lo que no se recomienda para aplicaciones que deben 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 y sin ambigüedades: Las consultas sin ambigüedades, como cadenas de direcciones postales completas (por ejemplo, "48 Pirrama Rd, Pyrmont, NSW, Australia"), se manejan mejor con el servicio web de la API de Geocoding. El backend de geocodificación de direcciones proporciona una mayor cobertura de direcciones a nivel mundial y está optimizado para obtener resultados de alta calidad con este tipo de consultas completas y sin ambigüedades.

Sistema automatizado que procesa consultas ambiguas: Las consultas ambiguas son aquellas que contienen direcciones con formato incorrecto, direcciones incompletas o errores ortográficos. Para los sistemas automatizados, te recomendamos usar el servicio web de la API de Geocoding. Sin embargo, la API de Geocoding no está diseñada para manejar consultas ambiguas y puede producir resultados menos precisos o ningún resultado en respuesta a consultas ambiguas. Si tu sistema automatizado procesa una alta tasa de consultas ambiguas que se derivan de la entrada del usuario, te recomendamos que agregues un elemento interactivo a tu app con el servicio Place Autocomplete en la API de Places, ya que está diseñado para mostrar varias opciones posibles y permitir que el usuario elija entre ellas. La API de Places muestra un ID de lugar que se puede pasar como una ubicación completamente desambiguada al servicio web de la API de Geocoding, que luego muestra los detalles completos de la dirección y geocodifica la dirección en una latlng. Obtén más información sobre el servicio Place Autocomplete para Android, iOS, JavaScript y la API de Places.

Reduce la latencia de la API de Directions y de la API de Distance Matrix

Cuando los orígenes, los destinos o los 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 estas direcciones antes de calcular las instrucciones sobre cómo llegar. Esto aumenta significativamente la latencia en comparación con la especificación de las mismas ubicaciones como latlngs 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 la entrada del usuario, y tus orígenes, destinos o puntos de referencia se especifican inicialmente como cadenas de direcciones, te recomendamos que minimices la latencia con el servicio de Autocomplete de lugares de la API de Places para convertir cadenas de direcciones en IDs de lugares y, luego, pasar los IDs de lugares 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 de Place Autocomplete y Directions.

Conclusión

Según tu caso de uso, cuando geocodificas direcciones, usar la API de Geocoding o el servicio Place Autocomplete en combinación con la API de Geocoding te permite crear aplicaciones que ofrezcan a los usuarios resultados de geocodificación precisos y una latencia reducida.

Administra los errores y los reintentos

Si recibes respuestas UNKNOWN_ERROR, estas se deben a errores transitorios y lo mejor es volver a intentarlo después de una breve demora. Te recomendamos que uses las bibliotecas cliente de los servicios web de Google Maps Platform, que incluyen lógica de reintento y admiten la autenticación del plan Premium de Google Maps Platform. El cliente de Java, el cliente de Python, el cliente de Go y el cliente de Node.js para los servicios de Google Maps son bibliotecas cliente compatibles con la comunidad, disponibles para su descarga y contribuciones en GitHub, donde también encontrarás instrucciones de instalación y código de muestra.

Si recibes 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 del uso.