Documentation de l'API et Playground
Introduction
L'API OSRMRoute Directions est un service web RESTful conçu pour intégrer un routage géospatial rapide et hautes performances, des matrices de trajets, la recherche d'adresses (géocodage) et l'optimisation d'itinéraires dans vos applications. Cette documentation explique en détail toutes les capacités de l'API, les paramètres et les étapes d'intégration.
Authentification
Les requêtes à l'API OSRMRoute utilisent une clé API unique pour l'authentification. Vous pouvez ajouter votre clé API à chaque requête en tant que paramètre de requête (?key=YOUR_KEY) ou via l'en-tête HTTP Authorization (comme jeton Bearer).
Any endpointParamètres (Query Params)
| Paramètre | Type | Statut | Par défaut | Description |
|---|---|---|---|---|
| key | string | Obligatoire | - | La clé API unique obtenue depuis votre tableau de bord personnel. Cette clé détermine les limites de vos requêtes. |
Codes d'erreur
OSRMRoute utilise des codes de statut HTTP standard et des messages d'erreur JSON détaillés pour indiquer l'état d'une requête.
Explication de la structure de la réponse
Principaux codes de statut et leur signification : - **200 OK** : La requête a abouti. - **400 Bad Request** : Les paramètres sont invalides ou manquants. - **401 Unauthorized** : La clé API n'a pas été fournie ou est invalide. - **403 Forbidden** : La clé API est bloquée ou inactive. - **429 Too Many Requests** : La limite quotidienne de crédits a été dépassée. - **500 Internal Error** : Une erreur interne du système s'est produite.
Routing API
Calcule l'itinéraire le plus rapide et le plus court du point A au point B (avec des points via intermédiaires). Renvoie des instructions détaillées (turn-by-turn) et une géométrie GeoJSON pour différents profils de transport (driving, cycling, walking).
/api/v1/osrm/route/v1/{profile}/{coordinates}Paramètres (Query Params)
| Paramètre | Type | Statut | Par défaut | Description |
|---|---|---|---|---|
| profile | string | Obligatoire | driving | Profil du mode de transport. Valeurs prises en charge : driving (voiture), cycling (vélo), walking (piéton). |
| coordinates | string | Obligatoire | - | Coordonnées des points. Format : lon,lat;lon,lat;lon,lat... (au moins 2 points). |
| overview | string | Facultatif | full | Niveau de détail de la géométrie d'itinéraire renvoyée : simplified (simplifiée), full (géométrie complète), false (sans géométrie). |
| geometries | string | Facultatif | geojson | Format de géométrie : geojson (objet GeoJSON), polyline (chaîne encodée). |
| steps | boolean | Facultatif | true | Si des instructions étape par étape sont renvoyées pour chaque virage. |
Explication de la structure de la réponse
Une réponse réussie contient la distance totale de l'itinéraire (en mètres), la durée du trajet (en secondes), les points de passage et la ligne d'itinéraire en GeoJSON.
Matrix API
Calcule une matrice rapide de distance et de temps de trajet entre plusieurs points (un tableau NxM). Un outil idéal pour optimiser les itinéraires logistiques.
/api/v1/osrm/table/v1/{profile}/{coordinates}Paramètres (Query Params)
| Paramètre | Type | Statut | Par défaut | Description |
|---|---|---|---|---|
| profile | string | Obligatoire | driving | Profil de transport (driving, cycling, walking). |
| coordinates | string | Obligatoire | - | Points de la matrice. Format : lon,lat;lon,lat;lon,lat... |
| annotations | string | Facultatif | duration,distance | Données à calculer : duration (temps), distance ou les deux. |
Explication de la structure de la réponse
Une réponse réussie renvoie un tableau-matrice bidimensionnel de distances et de durations (durées) pour chaque combinaison de point de départ et d'arrivée.
Map Matching API
Aligne des traces GPS imprécises sur le réseau routier réel (snap to road). Utilisé pour nettoyer le bruit dans les signaux GPS.
/api/v1/osrm/match/v1/{profile}/{coordinates}Paramètres (Query Params)
| Paramètre | Type | Statut | Par défaut | Description |
|---|---|---|---|---|
| profile | string | Obligatoire | driving | Profil de transport. |
| coordinates | string | Obligatoire | - | La séquence de coordonnées GPS à aligner (lon,lat;lon,lat...) |
| overview | string | Facultatif | full | Précision de la géométrie de l'itinéraire aligné. |
Nearest API
Aligne n'importe quelle coordonnée sur le segment de route réel le plus proche (snap) et renvoie des informations sur le nom de la route.
/api/v1/osrm/nearest/v1/{profile}/{coordinates}Paramètres (Query Params)
| Paramètre | Type | Statut | Par défaut | Description |
|---|---|---|---|---|
| profile | string | Obligatoire | driving | Profil de transport. |
| coordinates | string | Obligatoire | - | Le point à proximité duquel chercher. Format : lon,lat (une seule paire). |
| number | integer | Facultatif | 3 | Le nombre de routes candidates les plus proches à trouver. |
Trip API
Résout le problème du voyageur de commerce (TSP) : trouve l'itinéraire circulaire (ou ouvert) le plus optimal pour visiter un ensemble de points donné et ordonne les points.
/api/v1/osrm/trip/v1/{profile}/{coordinates}Paramètres (Query Params)
| Paramètre | Type | Statut | Par défaut | Description |
|---|---|---|---|---|
| profile | string | Obligatoire | driving | Profil de transport. |
| coordinates | string | Obligatoire | - | Points à visiter. Format : lon,lat;lon,lat... |
| source | string | Facultatif | any | Le point où l'itinéraire peut commencer (any ou le premier point). |
| destination | string | Facultatif | any | Le point où l'itinéraire se termine (any ou le dernier point). |
Geocoding API
Convertit des adresses en coordonnées géographiques (ou inversement). Idéal pour les systèmes de recherche intégrés.
/api/1/geocodeParamètres (Query Params)
| Paramètre | Type | Statut | Par défaut | Description |
|---|---|---|---|---|
| q | string | Obligatoire | - | L'adresse à rechercher (par ex. : « rue Nizami, Bakou »). |
| reverse | boolean | Facultatif | false | Doit être true pour effectuer un géocodage inverse (recherche de coordonnée vers adresse). |
Isochrone API
Renvoie des polygones des zones géographiques accessibles depuis un point donné dans un temps ou une distance donnés.
/api/1/isochroneParamètres (Query Params)
| Paramètre | Type | Statut | Par défaut | Description |
|---|---|---|---|---|
| point | string | Obligatoire | - | Point central. Format : lat,lon. |
| time_limit | integer | Facultatif | 600 | Limite de temps de trajet (en secondes). |
Route Optimization API
Optimise les itinéraires d'une flotte de véhicules (Vehicle Routing Problem). Calcule le plan de livraison et de transport des véhicules au moindre coût.
/api/1/vrpParamètres (Query Params)
| Paramètre | Type | Statut | Par défaut | Description |
|---|---|---|---|---|
| vehicles | array | Obligatoire | [] | La liste des véhicules (id, capacité, adresse de départ, etc.). |
| services | array | Obligatoire | [] | Les adresses à desservir (id, coordonnées, temps de service, etc.). |
Location Clustering API
Regroupe (en clusters) les coordonnées données selon leur proximité et leur densité géographique.
/api/1/clusterParamètres (Query Params)
| Paramètre | Type | Statut | Par défaut | Description |
|---|---|---|---|---|
| customers | array | Obligatoire | [] | Coordonnées des clients et poids à regrouper en clusters. |