Guías

Crea un localizador de tiendas con geocodificación inversa

Un localizador de tiendas necesita dos cosas que funcionen juntas: una forma de saber dónde está el cliente y una lista de coordenadas de tiendas con la que comparar. La geocodificación inversa cubre la primera parte limpiamente.

Convertir coordenadas en una ubicación legible

Una vez que tienes las coordenadas del cliente, a partir de una ubicación que introdujo o de una consulta de IP, aplícales geocodificación inversa para mostrarle al cliente un nombre de lugar legible y confirmar la ubicación de búsqueda antes de mostrar los resultados.

GET /v1/reverse?lat=51.5074&lon=-0.1278
{
  "status": "ok",
  "formatted": "Trafalgar Square, London, UK",
  "lat": 51.5074,
  "lon": -0.1278,
  "type": "address",
  "precision": "street",
  "confidence": 0.9,
  "place_id": "lm345",
  "components": {"city": "London", "country": "GB"}
}

Encontrar las tiendas más cercanas

La API devuelve coordenadas, no distancias entre dos puntos cualesquiera, así que una vez que tienes la latitud y la longitud del cliente, calcula la distancia a cada tienda de tu propia lista con las matemáticas estándar de distancia ortodrómica sobre los dos pares de coordenadas. Ordena tu lista de tiendas por esa distancia calculada y muestra las más cercanas.

Dejar que los clientes escriban una dirección

No todos los visitantes compartirán su ubicación. Para una búsqueda por dirección escrita, geocodifica primero el texto introducido con /v1/forward para obtener coordenadas y luego ejecuta el mismo cálculo de distancia a la tienda más cercana sobre ese resultado. Si quieres que aparezcan sugerencias mientras el cliente escribe en lugar de esperar a una dirección completa, /v1/autocomplete puede respaldar un campo con sugerencias que pase un place_id o un texto resuelto al mismo paso de geocodificación directa.

Un segundo ejemplo: una app móvil que usa el GPS del dispositivo

Una app nativa puede saltarse el paso de geocodificación inversa para encontrar tiendas cercanas, ya que tiene las coordenadas brutas del dispositivo para compararlas directamente con tu lista de tiendas. Aun así, la geocodificación inversa se gana su sitio ahí para el texto de confirmación que se muestra al cliente, algo como "Mostrando tiendas cerca de Trafalgar Square, Londres" en lugar de un simple par de números, lo que tranquiliza al cliente de que la app entendió correctamente su ubicación antes de que recorra los resultados.

Un error habitual que debes evitar

No des por hecho que toda dirección escrita se geocodifica con precisión de vivienda antes de ejecutar el cálculo de distancia. Una consulta amplia, como solo el nombre de una ciudad, seguirá devolviendo un resultado, pero con una precisión más gruesa, y tratar ese punto aproximado como si señalara el edificio exacto del cliente hará que tu clasificación de "tienda más cercana" sea menos fiable de lo que los campos confidence y precision te habrían indicado.

Gestionar un empate entre dos tiendas cercanas

Cuando dos tiendas quedan a distancias calculadas casi idénticas, la distancia por sí sola no le dirá al cliente cuál le conviene más. Mostrar ambas, junto con detalles como el horario de apertura o la disponibilidad de existencias, le da al cliente el factor decisivo en lugar de un orden arbitrario.

Confirmar la coincidencia

Muestra la dirección formateada del resultado de geocodificación inversa junto a los resultados de tiendas, para que el cliente vea de inmediato si la ubicación detectada o resuelta coincide con el lugar desde el que realmente quería buscar y pueda corregirla si no es así.

Lo que cuesta

Cada búsqueda es una solicitud de geocodificación inversa o directa, sin importar con cuántas tiendas la compares después, ya que el cálculo de distancia en sí ocurre en tu propio código una vez que tienes las coordenadas de ambos lados. Un localizador de tiendas con una cantidad moderada de tráfico diario cabe fácilmente dentro de las 2.500 solicitudes gratuitas al día incluidas con cada clave.

Un localizador de tiendas construido así necesita exactamente una solicitud de geocodificación por búsqueda del cliente, y todo lo demás se gestiona localmente con tu propia lista de tiendas. Los campos completos de la respuesta están en la documentación de geocodificación inversa.