Agent de publication Road2 - Documentation#

Description: L’agent de publication Road2 (gpf-pub-agent-road2) permet la publication de configuration de l’API Entrepôt sur un service Road2
Author and contributors: Oslandia
Version: 1.11.0
Source code: https://gitlab.gpf-tech.ign.fr/geoplateforme/itineraire/gpf-pub-agent-road2/
Last documentation build: 05 February 2025


Road2 est un métamoteur de service de calcul d’itinéraire et d’isochrone utilisant les moteurs de calculs suivant:

  • pgRouting: extension PostgreSQL, utilisation de procédure complémentaires développées par l’IGN pgrouting-procedures

  • OSRM: moteur de calcul d’itinéraire développé en C++ et utilisant des données OpenStreetMap Github. Utilisation du binding node par Road2.

  • Valhalla: moteur de calcul d’itinéraire et d’isochrone développé en C++ et utilisant des données OpenStreetMap GitHub. Utilisation de l’outil en ligne de commande valhalla_service.

Afin de pouvoir générer les graphes utilisables par Road2, 2 traitements ont été créés pour une utilisation dans l’API entrepôt:

Voici un schéma décrivant les étapes pour la génération et la publication/dépublication/modification d’un graphe :

flowchart TD subgraph Generation[Génération] InputDB[(Base de données : VECTOR-DB)] DB2Pivot{Transformation en base pivot Road2 :\n vector-db-to-pivot-road2} OutputDB[(Base pivot road2 : VECTOR-DB)] InputDB --> DB2Pivot --> OutputDB OutputDB --> GraphGeneration{Transformation en graphe Road2 :\n pivot-road2-to-graph-road2} GraphGeneration -->|pgRouting| D[(Base pgrouting : GRAPHE-DB)] GraphGeneration -->|OSRM| E{{Fichiers OSRM : GRAPHE-OSRM}} GraphGeneration -->|Valhalla| F{{Tuiles Valhalla: GRAPHE-VALHALLA}} end subgraph Publication CheckData{Graphes disponibles sur endpoint?} CheckData -->|Non|DL["Téléchargement des graphes depuis bucket S3"]-->Road2Config CheckData -->|Oui|Road2Config Road2Config["Création resource road2"] end subgraph Depublication DataUse{Graphes utilisés par autre ressource?} DataUse -->|Non|Delete["Suppression des graphes"]-->RemoveResource DataUse -->|Oui|RemoveResource RemoveResource["Supression resource Road2"] end subgraph Modification DepublicationProcess[Dépublication]-->PublicationProcess[Publication] end Reload["Redémarrage Road2"] Graphes["Configuration Road2"] Generation --> Graphes Graphes --> Publication --> Reload Graphes --> Depublication--> Reload Graphes --> Modification --> Reload

Les processus de Publication / Dépublication / Modification utilisent des configurations de type ITINERARY-ISOCURVE.

Le parcours utilisateur pour la publication d’un graphe est le suivant :

flowchart TB Create["Création graphe (vector-db-to-pivot-road2 + pivot-road2-to-graph-road2) "] -->|"POST /datastore/{datastore}/configurations"|Configuration[Configuration ITINERARY-ISOCHRONE] Configuration --> |"POST /datastore/{datastore}/configurations/{configuration}/offerings"|Offering[Demande de publication]

Pour obtenir la structure utilisée, merci de vous référer à l’API Swagger de l’Entrepôt.


Miscellaneous