Geocodificación local y distancia por la ruta más rápida para automóvil. Todos los endpoints se ejecutan dentro de Docker. Esquema OpenAPI completo.
Parámetros: address (obligatorio, 2–300 caracteres), city (comuna opcional), limit (1–10, predeterminado 5). Incluye la comuna para reducir ambigüedad.
curl -G http://localhost:8080/v1/geocode \ --data-urlencode 'address=Avenida Providencia 1234' \ --data-urlencode 'city=Providencia'
Devuelve results ordenados por confianza. Cada resultado incluye lat, lon, city, precision, approximate, confidence y referencia osm_id. La confianza es una puntuación heurística, no una probabilidad calibrada.
| precision | Significado |
|---|---|
| address | Numeración registrada en OSM (punto o centro del edificio). |
| interpolated | Interpolación lineal entre números de igual paridad conocidos, separación máxima 400 números y 600 metros. Aproximada. |
| street | Punto de un segmento representativo de la calle. No identifica el número solicitado. |
| place | Lugar o comercio registrado en OSM. |
curl http://localhost:8080/v1/route \
-H 'Content-Type: application/json' \
-d '{
"origin": {"address":"Avenida Providencia 1234", "city":"Providencia"},
"destination": {"address":"Avenida Libertad 500", "city":"Viña del Mar"},
"geometry": false,
"allow_approximate": true
}'Origen y destino aceptan texto con comuna, un objeto {"address":"...","city":"..."}, o coordenadas {"lat":-33.4372,"lon":-70.6506}. Usa allow_approximate:false para exigir una numeración registrada o coordenadas explícitas.
Devuelve distance_m, distance_km, duration_s, duration_minutes, los puntos resueltos y los ajustados a la red vial (snapped_points). Con geometry:true devuelve una línea GeoJSON, en orden longitud/latitud. El ajuste a la red vial tiene radio máximo de 1.000 metros. Revisa snap_distance_m si necesitas mayor precisión.
La distancia corresponde a la ruta de menor costo temporal del perfil auto de OSRM, no necesariamente al recorrido de menor longitud. No incluye tráfico en tiempo real ni un perfil especial para motocicletas. El costo temporal considera velocidades y penalizaciones de giro del perfil. La caché es direccional: A→B y B→A se calculan por separado.
/health/live: proceso activo. /health/ready: índice y motor de rutas listos. /v1/coverage: comunas, versión y conteos de datos.
| HTTP | Significado |
|---|---|
| 404 | Dirección o comuna no encontrada. |
| 409 | Dirección ambigua entre comunas: especifica city. |
| 422 | Datos inválidos, aproximación rechazada, punto lejos de una vía o ruta inexistente. |
| 503 | Motor de rutas no disponible o timeout. |
Los datos provienen de OpenStreetMap y su cobertura de numeraciones es desigual. Las coordenadas exactas respecto del dataset no garantizan la entrada del edificio. Los límites de comuna proceden de polígonos administrativos; donde faltan se usa addr:city o una clasificación geográfica aproximada. No hay consultas a geocodificadores públicos durante la operación.