OSRM : Moteur de Calcul d'Itinéraires Open Source
OSRM (Open Source Routing Machine) est un moteur de calcul d'itinéraires haute performance basé sur les données OpenStreetMap. Capable de calculer des itinéraires en quelques millisecondes, il est utilisé par des entreprises comme Mapbox, Strava et de nombreux services de navigation à travers le monde. Chez MapWay, nous déployons OSRM pour offrir des services de routage adaptés au réseau routier tunisien, intégrés à notre plateforme TMaps.
Comment fonctionne OSRM
OSRM utilise l'algorithme de Contraction Hierarchies (CH) pour pré-calculer des raccourcis dans le graphe routier, permettant des requêtes de routage en temps constant quelle que soit la longueur de l'itinéraire. Le processus se décompose en deux phases :
- Pré-traitement : les données OSM sont extraites, le graphe routier est construit, et les hiérarchies de contraction sont calculées. Cette phase prend de quelques minutes (un pays) à plusieurs heures (le monde entier).
- Requêtes : le serveur HTTP répond aux requêtes de routage en quelques millisecondes, en parcourant le graphe pré-calculé.
Installation avec Docker
La méthode la plus simple pour déployer OSRM est d'utiliser Docker. Voici les étapes pour la Tunisie :
# Télécharger les données OSM de la Tunisie
wget https://download.geofabrik.de/africa/tunisia-latest.osm.pbf
# Extraire le profil de routage voiture
docker run -t -v $(pwd):/data osrm/osrm-backend \
osrm-extract -p /opt/car.lua /data/tunisia-latest.osm.pbf
# Calculer les partitions
docker run -t -v $(pwd):/data osrm/osrm-backend \
osrm-partition /data/tunisia-latest.osrm
# Personnaliser les poids
docker run -t -v $(pwd):/data osrm/osrm-backend \
osrm-customize /data/tunisia-latest.osrm
# Lancer le serveur
docker run -t -p 5000:5000 -v $(pwd):/data osrm/osrm-backend \
osrm-routed --algorithm mld /data/tunisia-latest.osrm
API de routage
OSRM expose une API HTTP RESTful avec plusieurs services :
Route : calcul d'itinéraire
GET /route/v1/driving/10.18,36.80;10.76,34.74
?overview=full&geometries=geojson&steps=true
// Réponse : itinéraire Tunis → Sfax
{
"routes": [{
"distance": 270500,
"duration": 10800,
"geometry": { "type": "LineString", "coordinates": [...] },
"legs": [{ "steps": [...] }]
}]
}
Table : matrice de distances
Le service Table calcule les distances/durées entre tous les points d'un ensemble, essentiel pour l'optimisation logistique :
GET /table/v1/driving/10.18,36.80;10.76,34.74;9.87,36.45;10.09,33.88
// Retourne une matrice 4x4 de durées
Trip : optimisation de tournées
Le service Trip résout le problème du voyageur de commerce (TSP) : il trouve l'ordre optimal pour visiter un ensemble de points en minimisant la distance totale. Idéal pour les tournées de livraison.
Profils de routage personnalisés
OSRM utilise des profils Lua pour définir le comportement de routage. Les profils par défaut (car, bicycle, foot) peuvent être personnalisés pour prendre en compte les spécificités tunisiennes :
- Vitesses moyennes adaptées aux types de routes tunisiennes (autoroute, route nationale, route régionale)
- Pénalités pour les routes dégradées ou non revêtues
- Restrictions spécifiques (zones piétonnes dans les médinas, routes à péage)
- Poids des véhicules pour les poids lourds
Alternatives à OSRM
D'autres moteurs de routage open source méritent attention :
- Valhalla : développé par Mapzen puis Mapbox, il offre des fonctionnalités de navigation turn-by-turn et supporte les restrictions temporelles.
- GraphHopper : moteur Java avec une API riche, un support du trafic en temps réel et une bonne documentation.
- pgRouting : extension PostgreSQL/PostGIS pour le routage directement dans la base de données, idéal pour les analyses réseau complexes.
OSRM chez MapWay
Chez MapWay, nous maintenons une instance OSRM dédiée à la Tunisie, alimentée par nos données OSM enrichies. Ce service alimente les fonctionnalités de navigation de TMaps et les solutions de logistique que nous développons pour nos clients. La mise à jour hebdomadaire des données OSM garantit que les itinéraires calculés reflètent l'état actuel du réseau routier tunisien.
Articles similaires
Besoin d'aide pour votre projet ?
Notre équipe d'experts est prête à vous accompagner.
Contactez-nous