Service Géoplateforme de calcul d'itinéraire
- 1 - Présentation
- 2 - Capacités de l'API (getCapabilities)
- 3 - Calculer un itinéraire
- 4 - Caractéristiques des règles de calcul pour les itinéraires
Table des matières
Titre
1 - Présentation
Le service de calcul d'itinéraires de la Géoplateforme permet d’obtenir un itinéraire entre deux points selon un profil de parcours particulier.
Son usage est limité à 5 requêtes par seconde
Le calcul peut être paramétré selon le besoin selon plusieurs options détaillées :
- la méthode de calcul : chemin le plus court ou le plus rapide
- le type de véhicule : piéton ou voiture
- l’expression de contraintes d’exclusion à prendre en compte pour le calcul de l’itinéraire
- l’ajout d’étapes intermédiaires.
Les données de référence utilisées au sein du service de calcul d’itinéraires proviennent du réseau routier et des tables de non communications de la base de données IGN BD TOPO® (voir le descritpif de contenu).
Son swagger est accessible ici : swagger de calcul d'itinéraires.
Titre
2 - Capacités de l'API (getCapabilities)
La requête getCapabilities permet de découvrir les capacités de l'API : les opérations possibles, les ressources disponibles et les options proposées.
Elle est accessible via l’URL suivante :
https://data.geopf.fr/navigation/getCapabilities
Cette requête ne requiert aucun paramètre.
Titre
3 - Calculer un itinéraire
Le calcul d'itinéraires est accessible via l’URL suivante :
https://data.geopf.fr/navigation/itineraire
Les paramètres également précisés dans le swagger de calcul d'itinéraires sont les suivants :
Plusieurs types de ressources sont proposés pour effectuer le calcul à utiliser au choix selon les besoins :
- Méthode : GET
- Paramètres obligatoires :
- resource
- bdtopo-osrm : les calculs sont effectués avec le moteur « OSRM » : il permet des performances de calcul élevées mais présente un choix limité dans le paramétrage des requêtes notamment pour les l’expression des contraintes.
- bdtopo-vahlalla : les ressources de type « Valhalla » : les calculs sont effectués avec le moteur « Valhalla » : il présente les mêmes avantages et inconvénients qu'OSRM, mais avec des performances un peu moindres. Nous vous conseillons de plutôt utiliser les ressources OSRM.
- bdtopo-pgr : les ressources de type « pgRouting » : les calculs sont effectués avec le moteur « pgRouting » : il permet un plus grand choix dans le paramétrage des requêtes notamment pour l’expression des contraintes et pour la récupération d'attributs issus de la BD TOPO®. Cependant, les performances de calcul de ce moteur sont très inférieures à celles d'OSRM et Valhalla, nous vous conseillons donc de choisir de manière préférentielle OSRM, et de n'opter pour pgRouting que si vous avez des besoins précis concernant les contraintes de calcul et/ou les attributs récupérés.
- start
- Point de départ exprimé dans le CRS, par défaut, de la ressource (EPSG:4326) (exemple : 2.337306,48.849319).
- end
- Point d'arrivée exprimé dans le CRS, par défaut, de la ressource (EPSG:4326) (exemple : 2.367776,48.852891).
- resource
- Paramètres facultatifs :
- intermediates
- Points intermédiaires sur votre itinéraire.
- profile
- Moyen de déplacement utilisé pour le calcul.
- Valeurs possibles : celles listées dans le getCapabilities (car, pedestrian...)
- optimization
- Mode de calcul utilisé pour déterminer l'itinéraire.
- Valeurs possibles : celles listées dans le getCapabilities (fastest, shortest)
- geometryFormat
- Format des géométries dans la réponse.
- Valeurs possibles :celles listées dans le getCapabilities (geojson, polyline)
- constraints
- Contraintes utilisées pour le calcul.
- Valeurs possibles : celles listées dans le getCapabilities (exemple : "banned","key":"wayType","operator":"=","value":"tunnel")
- getSteps
- Présence des étapes dans la réponse.
- Valeurs possibles : true, false
- getBbox
- Présence de l'emprise de l'itinéraire dans la réponse.
- Valeurs possibles : true, false
- distanceUnit
- Unité de distance renvoyée.
- Valeurs possibles : celles listées dans le getCapabilities (kilometer, meter)
- timeUnit
- Unité du temps renvoyé.
- Valeurs possibles : celles listées dans le getCapabilities (hour, minute, second...)
- crs
- Projection des géométries.
- Valeurs possibles : celles listées dans le getCapabilities (EPSG:4326...)
- waysAttributes
- Attributs des tronçons à afficher dans la réponse.
- Valeurs possibles : celles listées dans le getCapabilities (name...)
- intermediates
Exemple de requête :
https://data.geopf.fr/navigation/itineraire?resource=bdtopo-osrm&start=2.337306,48.849319&end=2.367776,48.852891&profile=car&optimization=fastest&constraints=%7B%22constraintType%22:%22banned%22,%22key%22:%22wayType%22,%22operator%22:%22=%22,%22value%22:%22autoroute%22%7D&getSteps=true&getBbox=true&distanceUnit=kilometer&timeUnit=hour&crs=EPSG:4326
Titre
4 - Caractéristiques des règles de calcul pour les itinéraires
Les données de navigation sont issues de la BD TOPO® (réseau routier et table de non communications).
Le graphe est dérivé de la BD TOPO®, apparié sur la BD CARTO® pour certains éléments. Il est disponible sur la France entière, Départements et Régions d’Outre-Mer inclus. Il est régulièrement mis à jour, sa date d’actualité est renseignée par le champ « resourceVersion » dans la réponse du service.
Vitesse voiture
Le nouveau mode de calcul des vitesses (septembre 2023) s’inspire très largement de l’algorithme élaboré par le SDIS44. Il est décomposé en deux étapes :
- le calcul de vitesses brutes en fonction des attributs propres à l’objet Tronçon de route (nature, importance, urbain…),
- ensuite, pour une partie d’entre eux, des pénalités liés au réseau ou à l’environnement (bâti, sinuosité, …) sont appliquées.
Par ordre de traitement :
| Conditions | Vitesse moyenne VL | ||
| Etat de l’objet ≠ "> | 0 | ||
| Accès véhicule léger = "Physiquement impossible" ou "Restreint aux ayants droit" | |||
| Nature = "Escalier" ou "Sentier" | |||
| Privé = vrai | |||
| Nature de la restriction = "Plot amovible" ou "Voie de tramway utilisable par les véhicules de secours" ou "Voie verte" ou "Aménagement mixte hors voie verte" ou "Piste cyclable" ou "Entrée avec gardien" ou "Passage barré" | |||
| Partage un point avec un objet Point du réseau de Nature = "Barrière" | |||
| Nature = "Route empierrée" | 10 | ||
| Nature = "Chemin" | 1 | ||
| Importance = 6 | 10 | ||
| Largeur de chaussée < 2.9 et ≠ 0.0 et non null | 10 | ||
| Intersecte un objet Equipement de transport de Nature = "Péage" | 50 | ||
| Partage un point ou est à moins de 0.2 m d’un objet Point du réseau de Nature = "Passage à niveau" | 50 | ||
| Nature = "Type autoroutier" et Classement administratif = "Autoroute" |
Importance = 1 | Urbain = faux | 125 |
| Urbain = vrai | 100 | ||
| Importance = 2 | Urbain = faux | 115 | |
| Urbain = vrai | 95 | ||
| Importance = 3 | Urbain = faux | 100 | |
| Urbain = vrai | 90 | ||
| Nature = "Type autoroutier" et Classement administratif ≠ "Autoroute" |
Importance = 1 | Urbain = faux | 105 |
| Urbain = vrai | 95 | ||
| Importance = 2 | Urbain = faux | 100 | |
| Urbain = vrai | 90 | ||
| Importance = 3 | Urbain = faux | 95 | |
| Urbain = vrai | 85 | ||
| Importance = 4 ou 5 | Urbain = faux | 90 | |
| Urbain = vrai | 67 | ||
| Conditions | Vitesse brute avant pénalités | ||
| Nature = "Rond-point" |
25 * |
||
| Nature = "Bretelle" | Importance = 1 à 4 | 60 * | |
| Importance = 5 ou 6 | 55 * | ||
| Importance = 1 ou 2 | Urbain = faux | 80 * | |
| Urbain = vrai | 50 * | ||
| Importance = 3 | Urbain = faux | 75 * | |
| Urbain = vrai | 50 * | ||
| Importance = 4 | Urbain = faux | 70 * | |
| Urbain = vrai | 45 * | ||
| Importance = 5 | Urbain = faux | 55 * | |
| Urbain = vrai | 40 * | ||
* les vitesses brutes sont ensuite diminuées par une pénalité liée à la longueur et à la sinuosité du tronçon, à la
densité du bâti environnant, ainsi qu’à la proximité d’écoles.
Calcul des pénalités
Préalable : calcul des zones de densité de bâtiments
Une carte de chaleur est calculée à partir de la classe Bâtiment. Les objets sélectionnés sont :
- ‘Construction légère’ = faux ou null,
- ‘Etat de l’objet’ = « En service »,
- Surface comprise entre 35 et 2000 m².
Le centroïde de chaque objet est ensuite pondéré par la hauteur du bâti (en cas de hauteur nulle, la valeur de 6 m est prise). À partir de cette carte, 3 intervalles de valeurs sont surfacifiés : « zone habitée », « centre dense » et « hyper-centre ». Cette donnée de contexte est mise à jour annuellement.
Calcul des pénalités uniques
| Dénomination | Condition | Pénalité |
| Impasses | Le tronçon a une valence de 1 sur le graphe des tronçons de vitesse ≠ 0 et sa longueur < 200 m | 50% |
| Rond-point | Le point médian intersecte la zone de densité "zone habitée" | 15% |
| Le point médian intersecte la zone de densité "centre dense" | 30% | |
| Le point médian intersecte la zone de densité "hyper centre" | 40% |
La vitesse brute est diminuée de cette pénalité : vitesse moyenne = vitesse brute * (1 –pénalité).
La valeur est enfin arrondie à 5 km/h supérieur pour les objets d’importance 1 à 4, et à 5 km/h inférieur pour les objets d’importance 5.
Calcul des pénalités cumulées
| Dénomination | Condition | Pénalité | |
| Densité | Le point médian intersecte la zone de densité "zone habitée" | 15% | |
| Le point médian intersecte la zone de densité "centre dense" | 30% | ||
| Le point médian intersecte la zone de densité "hyper centre" | 40% | ||
| Passage protégé |
Le tronçon est à moins de 80 m d’une <Zone d’activité ou d’intérêt> de Nature = "Enseignement primaire" ou "Collège" ou "Mairie" ou Nature détaillée = "Crèche" |
15% | |
| Longueur | Tronçon dont la longueur est inférieure ou égale à 80 m ET dont la nature est différente de "Route empierrée", "chemin" et "sentier" ET possède à ses deux sommets 3 liens ou plus avec des tronçons de nature différentes de "Route empierrée", "chemin" et "sentier". |
(80 – longueur) / 4 | |
| Relance ronds-points proches (tronçons connexes) | La longueur inférieure à 300m | ET le tronçon touche 2 tronçons de Nature = "Rond-point" | Arrondi entier le plus proche (300 – longueur) / 5 (coût maximum : 60%) |
| ET le tronçon touche 4 tronçons de Nature = "Rond-point" | Arrondi entier le plus proche (300 – longueur) / 7.5 (coût maximum : 40%) |
||
| Sinuosité | Longueur du tronçon / distance entre les 2 extrémités >= 1.25 | 20% | |
| Longueur du tronçon / distance entre les 2 extrémités >= 1.05 | 10% | ||
| Stop La longueur du tronçon < 300 m hors Nature "Bretelle" | Si un tronçon d’importance 3 touche un seul tronçon d’importance 1 ou 2 | Arrondi entier le plus proche (300- longueur) /3.75 (coût maximum : 80%) |
Si un tronçon d’importance 4 touche un seul tronçon d’importance 1 à 3 |
| Si un tronçon d’importance 5 touche un seul tronçon d’importance 1 à 4 | |||
| Si un tronçon d’importance 3 touche au moins deux tronçons d’importance 1 ou 2 | Arrondi entier le plus proche (300 – longueur) / 5 (coût maximum : 60%) |
||
| Si un tronçon d’importance 4 touche au moins deux tronçons d’importance 1 à 3 | |||
| Si un tronçon d’importance 5 touche au moins deux tronçons d’importance 1 à 4 | |||
| Largeur "rurale" | Le tronçon n'est pas en zone urbaine, sa nature est différente de 'Bretelle", son importance est 3 ou 4 et sa largeur est inférieure à 5m % | 15% | |
Les pénalités sont ensuite additionnées, avec toutefois un plafond de 80%.
La vitesse brute est diminuée de cette somme des pénalités (vitesse moyenne = vitesse brute * (1 – somme des pénalités).
La valeur est enfin arrondie à 5 km/h supérieur pour les objets d’importance 1 à 4 et à 5 km/h inférieur pour les objets d’importance 5 ou 6.
Contrainte sur l'attribut : Valeur obligatoire (calculée).
Vitesse piéton
Pour les piétons, les calculs sont basés sur les critères suivants :
- NATURE = ‘Autoroute’ & IMPORTANCE = ‘1’ –> 0 km/h
- NATURE = ‘Autoroute’ & IMPORTANCE = ‘2’ –> 0 km/h
- NATURE = ‘Autoroute’ & IMPORTANCE = ‘3’ –> 0 km/h
- Autres axes –> 4 km/h