Route Planner est une solution flexible et puissante pour générer des itinéraires à partir d'une liste d'adresses, avec estimation du temps et du coût selon les caractéristiques d'un véhicule. Grâce à son architecture basée sur le Factory Pattern, il permet de choisir dynamiquement entre plusieurs moteurs de calcul de routes, comme OSRM ou OSMnx.
🌍 Visualisez vos parcours sur une carte interactive, exportée au format HTML, et obtenez instantanément des estimations précises de distance, temps de trajet et coût.
- 🔹 Multi-routage : Choisissez entre OSRM (API rapide) ou OSMnx (calcul local).
- 📍 Géocodage intelligent à partir d'adresses.
- 🛣️ Traçage automatique des itinéraires.
- ⏱️ Estimation du temps de trajet basée sur le profil (voiture, vélo, piéton).
- 💰 Calcul du coût du trajet selon la consommation et le prix de l'énergie.
- 🗺️ Export interactif de la carte au format HTML.
- 🏗️ Architecture extensible et conforme aux principes SOLID.

Exemple de parcours généré entre plusieurs points à Paris avec OSRM.
route_planner/
├── main.py # Point d'entrée
├── route_planner.py # Coordination du routage et export
├── vehicule.py # Modèle de véhicule
├── routers/ # Implémentations des routeurs
│ ├── factory.py
│ ├── osrm_router.py
│ └── interface.py
├── exporters/ # Gestion des exports
└── html_exporter.py
- Clonez le dépôt :
git clone https://github.com/RomainBerthet/RoutePlanner.git
cd route_planner- Installez les dépendances :
pip install -r requirements.txtpip install route_plannerModifiez le fichier main.py selon vos adresses et caractéristiques de véhicule :
adresses = [
"Tour Eiffel, Paris",
"Louvre, Paris",
"Notre-Dame de Paris"
]
vehicule = Vehicule(type_transport='drive', consommation_l_km=0.06, cout_energie=1.8)
planner = RoutePlanner(vehicule, methode_routage='osrm')
planner.generer_parcours(adresses, "parcours_paris")Puis lancez simplement :
python main.py✅ Un fichier parcours_paris.html sera généré avec votre itinéraire interactif.
from route_planner import Vehicule, RoutePlanner
adresses = [
"Tour Eiffel, Paris",
"Louvre, Paris",
"Notre-Dame de Paris"
]
vehicule = Vehicule(type_transport='drive', consommation_l_km=0.06, cout_energie=1.8)
planner = RoutePlanner(vehicule, methode_routage='osrm')
planner.generer_parcours(adresses, "parcours_paris")| Paramètre | Description | Exemple |
|---|---|---|
type_transport |
Mode de transport (drive, bike, walk) |
'drive' |
methode_routage |
Moteur utilisé (osrm, osmnx) |
'osrm' |
consommation_l_km |
Consommation au km (L ou kWh) | 0.06 |
cout_energie |
Prix de l'énergie (€ par L ou kWh) | 1.8 |
- Intégration OSRM
- Support complet OSMnx
- Export PDF / PNG
- Ajout d'un mode "piéton touristique"
- Intégration de GraphHopper
- Interface web minimale (Flask)
Les contributions sont les bienvenues !
N'hésitez pas à ouvrir des issues ou proposer des pull requests pour améliorer le projet.
Ce projet est sous licence MIT — libre à vous de l'utiliser, le modifier et le partager.
⭐ N'oubliez pas de laisser un star si ce projet vous a été utile !