La geocodificación es el proceso que convierte direcciones (como una dirección física) 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. Se 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 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 se responde a la entrada del usuario.
Casos de uso y recomendaciones de API
| Casos de uso y recomendaciones de API | |
|---|---|
| Llegada física, selección avanzada de destinos, entrega de última milla, recogida o llegada de viajes compartidos, entradas de edificios o navegación por campus | Usa el método Search for destinations (SearchDestinations) en la API de Geocoding v4 para recuperar entradas de edificios, puntos de navegación con rutas, contornos de edificios y puntos de referencia cercanos. Consulta Elige un método de geocodificación. |
| Responder en tiempo real a la entrada 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, llama a SearchDestinations (para obtener detalles hiperlocales) o a GeocodePlace (para obtener coordenadas básicas). |
| Sistemas automatizados que procesan direcciones postales completas y sin ambigüedades (por ejemplo, “48 Pirrama Rd, Pyrmont, NSW, Australia”) | Usa el servicio web de la API de Geocoding v4 (SearchDestinations para obtener detalles hiperlocales o GeocodeAddress para buscar coordenadas). |
| Sistemas automatizados que procesan consultas ambiguas (por ejemplo, direcciones incompletas, con formato incorrecto o con errores ortográficos) | 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 la entrada del usuario pueden beneficiarse si se agrega un widget interactivo de Place Autocomplete para permitir que los usuarios seleccionen un resultado y, de esta manera, evitar que escriban una dirección con errores ortográficos. |
| Problemas de latencia cuando se usa la API de Directions (heredada) o la API de Distance Matrix (heredada) con orígenes, destinos o puntos de referencia especificados como cadenas 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 la API de Directions (heredada) o a la API de Distance Matrix (heredada). |
Responder a la entrada del usuario
Las aplicaciones que responden en tiempo real a la entrada del usuario tienen dos consideraciones principales que afectan la elección de la API:
- Por lo general, la entrada del usuario implica 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.
- Las aplicaciones que responden a entradas del usuario son muy sensibles a la latencia.
Estas dos consideraciones hacen que el servicio de Place Autocomplete de la API de Places sea ideal para el caso de uso de responder a la entrada del usuario. Place Autocomplete está diseñado para devolver múltiples opciones posibles y permitir que el usuario elija entre ellas. La API de Places se puede restringir para que solo busque geocódigos o direcciones, y excluya las empresas. Además, la función de búsqueda de autocompletado se puede personalizar para que devuelva resultados específicos de una ubicación. La API de Places devuelve un ID de lugar que se puede pasar como una ubicación completamente inequívoca al servicio web de la API de Geocoding, que, luego, devuelve los detalles de la dirección completa y geocodifica la dirección en un objeto LatLng. Los IDs de lugar también se pueden pasar a otras APIs, como la API de Directions (heredada) y la API de Distance Matrix (heredada) (consulta Reduce la latencia).
La geocodificación de direcciones en la API de Geocoding tiene una latencia mucho más alta y, además, produce resultados menos precisos para las búsquedas incompletas o ambiguas, por lo que no se recomienda para las aplicaciones que deben responder en tiempo real a la entrada 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 las 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 global y está optimizado para obtener resultados de alta calidad con este tipo de búsquedas 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, 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 podría producir resultados menos precisos o ningún resultado en respuesta a ellas. Si tu sistema automatizado procesa una alta tasa de búsquedas ambiguas que se derivan de la entrada del usuario, te recomendamos que agregues un elemento interactivo a tu app con el servicio de Place Autocomplete en la API de Places, ya que está diseñado para devolver varias opciones posibles y permitir que el usuario elija entre ellas. La API de Places devuelve un ID de lugar que se puede pasar como una ubicación completamente sin ambigüedades al servicio web de la API de Geocoding, que, luego, devuelve los detalles de la dirección completa y geocodifica la dirección en un valor de latitud y longitud. 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 (heredada) y la API de Distance Matrix (heredada)
Cuando los orígenes, los destinos o los puntos de referencia se especifican como cadenas de direcciones, la API de Directions (heredada) y la API de Distance Matrix (heredada) usan el mismo backend que la API de Geocoding para geocodificar estas direcciones antes de calcular las rutas. Esto aumenta significativamente la latencia en comparación con especificar las mismas ubicaciones como latlngs o IDs de lugar.
Si tu aplicación usa la API de Directions (heredada) o la API de Distance Matrix (heredada) en una situación sensible a la latencia, como responder a la entrada del usuario, y tus puntos de partida, destinos o puntos de referencia se especifican inicialmente como cadenas de direcciones, te recomendamos que minimices la latencia usando el servicio Place Autocomplete de la API de Places para convertir las cadenas de direcciones en IDs de lugar y, luego, pasar los IDs de lugar a la API de Directions (heredada) o a la API de Distance Matrix (heredada). Obtén más información sobre el servicio de 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, puedes usar la API de Geocoding sola o combinarla con el servicio de Place Autocomplete. Esto te permite compilar apps que ofrezcan resultados de geocodificación precisos y una latencia reducida.
Administra errores y reintentos
Si recibes respuestas UNKNOWN_ERROR, estas se deben a errores transitorios,
y la mejor manera de solucionarlos es volver a intentarlo después de un breve retraso. Te recomendamos que uses las
bibliotecas cliente de los servicios web de Google Maps Platform, que incluyen la lógica de reintentos y admiten la autenticación del plan Premium de Google Maps Platform.
Las bibliotecas cliente de Java, Python, Go y Node.js para los servicios de Google Maps son bibliotecas cliente que cuentan con asistencia de la comunidad y están disponibles para su descarga y contribución 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 de uso.