OSRMOpen Source Routing Engine
Utilisation avancéeSotM-FR 2018
2018-06-02
Frédéric Rodrigo – frederic@mapotempo.com – CC-By-Sa 3.0
@fre2d@twitter.com - @fre2d@unixcorn.xyz
Fonctionnalités
● Itinéraire A→(B)→ C
● Distancier A,B,C…→A,B,C...
● Map Matching, retrouver un itinéraire depuis un
GPX
a b c d e f
a 0 184 222 177 216 213
b 184 0 45 123 128 200
c 222 45 0 129 121 203
d 177 12 129 0 46 83
e 216 128 121 46 0 83
f 231 200 203 82 82 0
Moteur multi-algorithmes
→ Recherche du parcourt à coût minimal
● Contraction de Hiérarchies (CH)
● Multi-Level Dijkstra (MLD)
● Dijkstra / A*
Algorithmes - Temps
Durée requête
Durée
préparation
CH
MLDs
A*
Processus
Profil
Extraction (re-)Préparation
Customisation
avec data
Trafic temps réel*
.osrm.tmp
(re-)Chargement
Données statiques
landuse
zone de conduite à droite
Nouveautés
● Injection du trafic en temps réel
– Le temps de préparation doit être faible
● Annotation : classes pour les segments d’itinéraires : payant,
accès restreint...
● Exclusion de classes : ne pas prendre l’autoroute, les féries...
– Duplication des données et de la préparation
● Relations OSM supporté dans le préprocessing
● Propriétés par polygone
– Conduite à gauche
– Valeur par défaut de maxheight
● Arriver du bon coté de la voie
● Arriver au carrefour le plus proche
Services dérivées
● Isochrone
● Nature des zones traversées et types de voies
Profil maison
Densité Urbaine
● Faute de données trafic
● Utilisation des landuse de CLC pour influencer
le profil de vitesses
– Urbain dense
– Urbain
– Inter-urbain
Profil maison
Au plus court (mais pas trop)
● Payer des indemnités kilométriques
● Mais on ne veut quand même pas passer par
des chemins ou l'on roule à 5km/h !
→ Pénalité de la voie
– fonction de la distance
– Fonction de la vitesse
Profil maison
Poids-lourds « malin » - Problème
● Manque de données restriction PL dans OSM
● Modélisation inadapté au restriction de zones
– Limitation livraison centre ville
– Interdiction de traverser une ville aux PL
● Limitations conditionnelles
– motor_vehicle:conditional=delivery @ (weight>5)
– access:conditional=destination @ (Mo-Fr 08:00-17:00)
Profil maison
Poids-lourds « malin » - Solution
● Limitations physiques
– Hauteur
– Largeur
→ respect strict : ça passe ou ça casse
● Limitation légale
– Poids
– Longueur
→ éviter de passer : pénalité sur la voie
● Rester sur les grands axes
– Pénaliser les petits axes
OSRM & Mapotempo
● osrm-profiles-contrib
● osrm-isochrone-server
● router-wrapper
– Unifier plusieurs « variables »
● au plus rapide / au plus court
● Voiture / à pied / vélo / PL
– Unifier plusieurs moteurs de calculs
● OSRM
● OpenTripPlanner (transport en commun)
● ...

OSRM, Utilisation avancée

  • 1.
    OSRMOpen Source RoutingEngine Utilisation avancéeSotM-FR 2018 2018-06-02 Frédéric Rodrigo – frederic@mapotempo.com – CC-By-Sa 3.0 @fre2d@twitter.com - @fre2d@unixcorn.xyz
  • 2.
    Fonctionnalités ● Itinéraire A→(B)→C ● Distancier A,B,C…→A,B,C... ● Map Matching, retrouver un itinéraire depuis un GPX a b c d e f a 0 184 222 177 216 213 b 184 0 45 123 128 200 c 222 45 0 129 121 203 d 177 12 129 0 46 83 e 216 128 121 46 0 83 f 231 200 203 82 82 0
  • 3.
    Moteur multi-algorithmes → Recherchedu parcourt à coût minimal ● Contraction de Hiérarchies (CH) ● Multi-Level Dijkstra (MLD) ● Dijkstra / A*
  • 4.
    Algorithmes - Temps Duréerequête Durée préparation CH MLDs A*
  • 5.
    Processus Profil Extraction (re-)Préparation Customisation avec data Trafictemps réel* .osrm.tmp (re-)Chargement Données statiques landuse zone de conduite à droite
  • 6.
    Nouveautés ● Injection dutrafic en temps réel – Le temps de préparation doit être faible ● Annotation : classes pour les segments d’itinéraires : payant, accès restreint... ● Exclusion de classes : ne pas prendre l’autoroute, les féries... – Duplication des données et de la préparation ● Relations OSM supporté dans le préprocessing ● Propriétés par polygone – Conduite à gauche – Valeur par défaut de maxheight ● Arriver du bon coté de la voie ● Arriver au carrefour le plus proche
  • 7.
    Services dérivées ● Isochrone ●Nature des zones traversées et types de voies
  • 8.
    Profil maison Densité Urbaine ●Faute de données trafic ● Utilisation des landuse de CLC pour influencer le profil de vitesses – Urbain dense – Urbain – Inter-urbain
  • 9.
    Profil maison Au pluscourt (mais pas trop) ● Payer des indemnités kilométriques ● Mais on ne veut quand même pas passer par des chemins ou l'on roule à 5km/h ! → Pénalité de la voie – fonction de la distance – Fonction de la vitesse
  • 10.
    Profil maison Poids-lourds «malin » - Problème ● Manque de données restriction PL dans OSM ● Modélisation inadapté au restriction de zones – Limitation livraison centre ville – Interdiction de traverser une ville aux PL ● Limitations conditionnelles – motor_vehicle:conditional=delivery @ (weight>5) – access:conditional=destination @ (Mo-Fr 08:00-17:00)
  • 11.
    Profil maison Poids-lourds «malin » - Solution ● Limitations physiques – Hauteur – Largeur → respect strict : ça passe ou ça casse ● Limitation légale – Poids – Longueur → éviter de passer : pénalité sur la voie ● Rester sur les grands axes – Pénaliser les petits axes
  • 12.
    OSRM & Mapotempo ●osrm-profiles-contrib ● osrm-isochrone-server ● router-wrapper – Unifier plusieurs « variables » ● au plus rapide / au plus court ● Voiture / à pied / vélo / PL – Unifier plusieurs moteurs de calculs ● OSRM ● OpenTripPlanner (transport en commun) ● ...