Documentación de la API y Playground
Introducción
La OSRMRoute Directions API es un servicio web RESTful creado para integrar enrutamiento geoespacial rápido y de alto rendimiento, matrices de viaje, búsqueda de direcciones (geocodificación) y optimización de rutas en tus aplicaciones. Esta documentación explica en detalle todas las capacidades de la API, los parámetros y los pasos de integración.
Autenticación
Las solicitudes a la API de OSRMRoute usan una clave API única para la autenticación. Puedes añadir tu clave API a cada solicitud como parámetro de consulta (?key=YOUR_KEY) o mediante la cabecera HTTP Authorization (como token Bearer).
Any endpointParámetros (Query Params)
| Parámetro | Tipo | Estado | Predeterminado | Descripción |
|---|---|---|---|---|
| key | string | Obligatorio | - | La clave API única obtenida de tu panel personal. Esta clave determina los límites de tus solicitudes. |
Códigos de error
OSRMRoute usa códigos de estado HTTP estándar y mensajes de error JSON detallados para indicar el estado de una solicitud.
Explicación de la estructura de la respuesta
Principales códigos de estado y su significado: - **200 OK**: La solicitud se completó correctamente. - **400 Bad Request**: Los parámetros son inválidos o faltan. - **401 Unauthorized**: La clave API no se proporcionó o es inválida. - **403 Forbidden**: La clave API está bloqueada o inactiva. - **429 Too Many Requests**: Se superó el límite diario de créditos. - **500 Internal Error**: Ocurrió un error interno del sistema.
Routing API
Calcula la ruta más rápida y corta del punto A al punto B (con puntos intermedios via). Devuelve instrucciones paso a paso (turn-by-turn) y geometría GeoJSON para diferentes perfiles de transporte (driving, cycling, walking).
/api/v1/osrm/route/v1/{profile}/{coordinates}Parámetros (Query Params)
| Parámetro | Tipo | Estado | Predeterminado | Descripción |
|---|---|---|---|---|
| profile | string | Obligatorio | driving | Perfil de modo de transporte. Valores admitidos: driving (coche), cycling (bici), walking (peatón). |
| coordinates | string | Obligatorio | - | Coordenadas de los puntos. Formato: lon,lat;lon,lat;lon,lat... (al menos 2 puntos). |
| overview | string | Opcional | full | Nivel de detalle de la geometría de ruta devuelta: simplified (simplificada), full (geometría completa), false (sin geometría). |
| geometries | string | Opcional | geojson | Formato de geometría: geojson (objeto GeoJSON), polyline (cadena codificada). |
| steps | boolean | Opcional | true | Si se devuelven instrucciones paso a paso para cada giro. |
Explicación de la estructura de la respuesta
Una respuesta correcta contiene la distancia total de la ruta (en metros), la duración del viaje (en segundos), los puntos de paso y la línea de ruta en GeoJSON.
Matrix API
Calcula una matriz rápida de distancia y tiempo de viaje entre varios puntos (una tabla NxM). Una herramienta ideal para optimizar rutas logísticas.
/api/v1/osrm/table/v1/{profile}/{coordinates}Parámetros (Query Params)
| Parámetro | Tipo | Estado | Predeterminado | Descripción |
|---|---|---|---|---|
| profile | string | Obligatorio | driving | Perfil de transporte (driving, cycling, walking). |
| coordinates | string | Obligatorio | - | Puntos de la matriz. Formato: lon,lat;lon,lat;lon,lat... |
| annotations | string | Opcional | duration,distance | Datos a calcular: duration (tiempo), distance (distancia) o ambos. |
Explicación de la estructura de la respuesta
Una respuesta correcta devuelve una tabla-matriz bidimensional de distances (distancias) y durations (duraciones) para cada combinación de punto de inicio y fin.
Map Matching API
Ajusta trazas GPS imprecisas a la red vial real (snap to road). Se usa para limpiar el ruido en las señales GPS.
/api/v1/osrm/match/v1/{profile}/{coordinates}Parámetros (Query Params)
| Parámetro | Tipo | Estado | Predeterminado | Descripción |
|---|---|---|---|---|
| profile | string | Obligatorio | driving | Perfil de transporte. |
| coordinates | string | Obligatorio | - | La secuencia de coordenadas GPS a ajustar (lon,lat;lon,lat...) |
| overview | string | Opcional | full | Precisión de la geometría de la ruta ajustada. |
Nearest API
Ajusta cualquier coordenada al segmento de carretera real más cercano (snap) y devuelve información sobre el nombre de la vía.
/api/v1/osrm/nearest/v1/{profile}/{coordinates}Parámetros (Query Params)
| Parámetro | Tipo | Estado | Predeterminado | Descripción |
|---|---|---|---|---|
| profile | string | Obligatorio | driving | Perfil de transporte. |
| coordinates | string | Obligatorio | - | El punto cerca del cual buscar. Formato: lon,lat (un solo par). |
| number | integer | Opcional | 3 | El número de carreteras candidatas más cercanas a encontrar. |
Trip API
Resuelve el Problema del Viajante (TSP): encuentra la ruta circular (o abierta) más óptima para visitar un conjunto de puntos dado y ordena los puntos.
/api/v1/osrm/trip/v1/{profile}/{coordinates}Parámetros (Query Params)
| Parámetro | Tipo | Estado | Predeterminado | Descripción |
|---|---|---|---|---|
| profile | string | Obligatorio | driving | Perfil de transporte. |
| coordinates | string | Obligatorio | - | Puntos a visitar. Formato: lon,lat;lon,lat... |
| source | string | Opcional | any | El punto desde el que puede empezar la ruta (any o el primer punto). |
| destination | string | Opcional | any | El punto donde termina la ruta (any o el último punto). |
Geocoding API
Convierte direcciones en coordenadas geográficas (o viceversa). Ideal para sistemas de búsqueda integrados.
/api/1/geocodeParámetros (Query Params)
| Parámetro | Tipo | Estado | Predeterminado | Descripción |
|---|---|---|---|---|
| q | string | Obligatorio | - | La dirección a buscar (p. ej.: «Calle Nizami, Bakú»). |
| reverse | boolean | Opcional | false | Debe ser true para realizar geocodificación inversa (búsqueda de coordenada a dirección). |
Isochrone API
Devuelve polígonos de las zonas geográficas alcanzables desde un punto dado dentro de un tiempo o distancia determinados.
/api/1/isochroneParámetros (Query Params)
| Parámetro | Tipo | Estado | Predeterminado | Descripción |
|---|---|---|---|---|
| point | string | Obligatorio | - | Punto central. Formato: lat,lon. |
| time_limit | integer | Opcional | 600 | Límite de tiempo de viaje (en segundos). |
Route Optimization API
Optimiza las rutas de una flota de vehículos (Vehicle Routing Problem). Calcula el plan de entrega y transporte de los vehículos con el menor coste.
/api/1/vrpParámetros (Query Params)
| Parámetro | Tipo | Estado | Predeterminado | Descripción |
|---|---|---|---|---|
| vehicles | array | Obligatorio | [] | La lista de vehículos (id, capacidad, dirección de inicio, etc.). |
| services | array | Obligatorio | [] | Las direcciones a atender (id, coordenadas, tiempo de servicio, etc.). |
Location Clustering API
Agrupa (agrupa en clústeres) las coordenadas dadas según su proximidad y densidad geográfica.
/api/1/clusterParámetros (Query Params)
| Parámetro | Tipo | Estado | Predeterminado | Descripción |
|---|---|---|---|---|
| customers | array | Obligatorio | [] | Coordenadas de clientes y pesos a agrupar en clústeres. |