← Probar servicio

Trailrune · API v1

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.

GET /v1/geocode

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.

precisionSignificado
addressNumeración registrada en OSM (punto o centro del edificio).
interpolatedInterpolación lineal entre números de igual paridad conocidos, separación máxima 400 números y 600 metros. Aproximada.
streetPunto de un segmento representativo de la calle. No identifica el número solicitado.
placeLugar o comercio registrado en OSM.

POST /v1/route

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.

Operación y errores

/health/live: proceso activo. /health/ready: índice y motor de rutas listos. /v1/coverage: comunas, versión y conteos de datos.

HTTPSignificado
404Dirección o comuna no encontrada.
409Dirección ambigua entre comunas: especifica city.
422Datos inválidos, aproximación rechazada, punto lejos de una vía o ruta inexistente.
503Motor 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.