2. Liste des fonctionnalités#

Road2 propose un ensemble de fonctionnalités regroupées dans plusieurs groupes.

2.1. Groupe de fonctionnalités 1 : Interface pour calculer des itinéraires#

2.1.1. Définir un point de départ, un point d’arrivée et des points intermédiaires#

Fonctionnalités classiques et inévitables, elles ne seront pas détaillées ici. Précision : il est possible de préciser autant de point intermédiaire que l’on souhaite.

2.1.2. Définir des contraintes#

La notion de contrainte est définie dans les concepts. Pour faire simple, il s’agit de spécifier des conditions que l’itinéraire devra remplir. La plus connue est certainement l’interdiction de prendre des autoroutes. Mais on peut avoir des conditions beaucoup plus complexes et on peut en appliquer plusieurs au calcul d’un itinéraire.

2.1.3. Préciser la ressource employée#

Comme précisé dans les concepts, Road2 gère des ressources. Chaque requête doit préciser la ressources qu’elle interroge.

2.1.4. Préciser le profile voulu#

Il est possible de préciser quel moyen de transport, l’itinéraire concerne.

2.1.5. Préciser l’optimisation voulue#

Il est possible de préciser l’optimisation que l’on veut appliquer lors du calcul.

2.1.6. Ajouter des informations sur chaque tronçons#

Selon les données présentes dans les graphes, il est possible de choisir les informations que l’on souhaite récupérer dans la réponse du calcul.

2.1.7. Préciser le contenu de la réponse#

Par l’intermédiaire de plusieurs paramètres, il est possible de préciser le contenu de la réponse :

  • La présence ou non des étapes du parcours.

  • Le format des géométries dans la réponse. Pour le moment, geojson, polyline et wkt sont disponibles.

  • La présence ou non d’une bbox dans la réponse.

2.1.8. Choisir les unités de la requête et de la réponse#

Grâce à des paramètres de la requête, il est possible d’influencer le format de la requête elle-même, et de la réponse :

  • Il est possible de définir la projection employée.

  • Le format des durées est modifiable.

  • Le format des distances est modifiable.

2.2. Groupe de fonctionnalités 2 : Interface pour calculer des isochrones et des isodistances#

2.2.1. Définir un point de départ ou d’arrivée#

Fonctionnalité inévitable pour le calcul d’un isochrone.

2.2.2. Préciser la ressource employée#

Comme précisé dans les concepts, Road2 gère des ressources. Chaque requête doit préciser la ressources qu’elle interroge.

2.2.3. Préciser le type de coût employé#

Divers coûts sont possibles pour le calcul, il s’agit donc de le préciser.

2.2.4. Définir la valeur du coût employée#

Fonctionnalités inévitable pour un tel calcul.

2.2.5. Préciser le profil voulu#

Il est possible de préciser quel moyen de transport, l’isochrone concerne.

2.2.6. Indiquer la direction considérée pour le résultat du calcul#

Un isochrone peut se définir dans deux directions : départ ou arrivée. Il s’agit donc de préciser laquelle.

2.2.7. Définir des contraintes#

La notion de contrainte est définie dans les concepts. Elle est limitée aux interdictions, comme par exemple, l’interdiction de prendre des autoroutes.

2.2.8. Préciser le contenu de la réponse#

Par l’intermédiaire de plusieurs paramètres, un seul pour le moment, il est possible de préciser le contenu de la réponse :

  • Le format des géométrie dans la réponse. Pour le moment, geojson, polyline et wkt sont disponibles.

2.2.9. Choisir les unités de la requête et de la réponse#

Grâce à des paramètres de la requête, il est possible d’influencer le format de la requête elle-même, et de la réponse :

  • Il est possible de définir la projection employée.

  • Le format des durées est modifiable.

  • Le format des distances est modifiable.

2.3. Groupe de fonctionnalités 3 : Proposer un service web#

Road2 prend la forme d’un serveur web qui fournit un service de calcul d’itinéraire. Il possède donc plusieurs fonctionnalités liées à cela.

2.3.1. Utiliser les protocoles HTTP et HTTPS#

Fonctionnalité explicite.

2.3.2. Configurer les CORS#

Fonctionnalité explicite.

2.3.3. Disposer de plusieurs APIs#

Comme présenté dans les concepts, Road2 offre la possibilité de proposer aux clients différentes APIs simultanément.

2.3.4. Disposer de plusieurs moteurs#

Comme présenté dans les concepts, Road2 offre la possibilité de proposer aux clients différents moteurs simultanément.

2.4. Groupe de fonctionnalités 4 : Administrer le service#

Le service peut être administrer de deux manières : la configuration et une API dédiée.

2.4.1. Configurer les ressources via la configuration#

Via la configuration fichier du serveur, il est possible de créer des ressources qui se baseront sur une ou plusieurs sources.

2.4.2. Limiter certains usages via la configuration#

Les APIs de Road2 proposent plusieurs options, comme la possibilité de calculer des itinéraires avec des points intermédiaires. Il peut être intéressant de limiter l’usage de ces options afin de ne pas surcharger le service.

2.4.3. Obtenir la version du serveur via l’API#

Fonctionnalité explicite.

2.4.4. Obtenir l’état de santé du serveur via l’API#

L’objectif est de récupérer l’état de chaque source de chaque service et d’en faire un compte-rendu.

2.4.5. Obtenir la configuration de l’administrateur#

2.4.6. Obtenir la configuration des services gérés par un administrateur#

2.4.7. Obtenir la configuration d’un service via son id#

2.4.8. Redémarrer un service via son id#

2.4.9. Obtenir la liste des projections gérés par un service#

2.4.10. Obtenir la présence d’une projection via son id#

2.5. Groupe de fonctionnalités 5 : Fonctionnalités spécifiques à OSRM#

2.5.1. Optimisation des graphes pour des réponses plus rapides#

Fonctionnalité explicite.

2.5.2. Calcul des itinéraires#

Fonctionnalité explicite.

2.5.3. Gestions des contraintes simples ou exclusions#

Les exclusions sont les contraintes classiques comme l’interdiction d’emprunter certains type de voies (ex. autoroutes). Ce sont les seuls contraintes disponibles via OSRM.

2.5.4. Déterminer le point du graphe le plus proche#

Pour un point donnée, OSRM peut renvoyer les points les plus proches du graphe.

2.6. Groupe de fonctionnalités 6 : Fonctionnalités spécifiques à PGRouting#

2.6.1. Calcul d’itinéraire#

Fonctionnalité explicite.

2.6.2. Calcul d’isochrone#

Fonctionnalité explicite.

2.6.3. Gestion de contraintes complexes#

PGRouting gère tout les types de contraintes, des plus simples au plus complexes. On peut donc interdire l’accès aux autoroutes ou préférer les routes qui ont une largeur supérieure à 5 mètres.

2.7. Groupe de fonctionnalités 7 : Fonctionnalités spécifiques à l’API simple/1.0.0#

2.7.1. Obtenir un GetCapabilities#

Le GetCapabilities est une réponse JSON qui décrit les paramètres de chaque opérations et les valeurs disponibles pour une instance de Road2.

On trouvera un exemple dans la documentation.