Skip to content

Requetes OSRM

Rémy edited this page Jan 15, 2020 · 1 revision

Requetes OSRM

Ce tutoriel à été fait sur la version 5.22.0 de OSRM. Certaines requêtes peuvent avoir évoluées.

Les Requêtes OSRM sont faites de tel manière :


  {server}/{service}/{version}/{profile}/{coordinates}[.{format}]?option=value&option=value

Généralités sur les requêtes

Les premiers tags

Le tag "server" correspond, pour nous à :


  http://localhost:5000/

Voici un tableau récapitulant les valeurs pouvant êtres données à "service", "version", "profile", "coordinates" et "format" :

Paramètre Description
service
Une des valeurs suivantes : route, nearest, table, match, trip, tile
route
Version du protocole implémenté par le service. v1 pour toutes les installations OSRM 5.x
profile
Mode de transport, déterminé par le profil Lua qui a été utilisé pour la préparation des données lors de la commande osrm-extract.
coordinates
Les {longitude},{latitude};{longitude},{latitude}[;{longitude},{latitude} ...] en format chaine de caractère (String). Il est aussi possible d'utiliser polyline({polyline}) ou polyline6({polyline6})
format
Seul JSON est supporté pour le moment. Ce paramètre est optionnel, et sa valeur par défaut est json.

Option des Requêtes

Voici la liste des options disponibles, qui sont optionnelles, permettant de moduler les requêtes au serveur :

Option Valeurs Description
bearings
{bearing};{bearing}[;{bearing} ...] Limite la recherche aux segments avec un certain degré donné, qui correspond a un degré par rapport au vrai nord, dans le sens des aiguilles d'une montre
radius
{radius};{radius}[;{radius} ...] Limite la recherche au rayon donné, en mètres
generate_hints
true (default), false Ajoute une "marque" à la réponse, permettant d'être utilisé dans des requêtes annexes (voir le paramètre "hints").
hints
{hint};{hint}[;{hint} ...] Marque d'un requête précédente
approaches
{approach};{approach}[;{approach} ...] Garde les points de passage sur une courbe.
exclude
{class}[,{class}] Ajouter des classes à ne pas prendre en compte. L'ordre n'importe pas.

Les paramètres doivent suivre les formats suivants :

Paramètre Valeurs
bearing {value},{range} integer 0 .. 360,integer 0 .. 180
radius double >= 0 ou ilimité (default)
hint Base64 string
approach "curb" ou "unrestricted" (par défaut)
class Une classe définie par le profil, ou None

⚠️ Attention : Le nombre d'élément doit suivre exactement le nombre de coordonnées données (excepté pour generate_hints et exclude). Si vous ne souhaitez pas passez de valeurs, créez un élément vide, exemple :


   {option}={element};;{element}

La deuxième coordonnée utilise la valeur par défaut de l'option :


   {radius}={30};;{radius}

Exemple de requête complète


   curl "http://localhost:5000/route/v1/biking/-0.551555,47.493140;-0.555089,47.487081?steps=true"

Pour notre projet

Pour notre projet, il faut savoir quel valeur du tag "service" nous allons utiliser. Pour notre projet, le pus intéressant serait d'utiliser les valeurs "route" et "nearest". route permet de trouver la route la plus courte reliant les coordonnées fournies, alors que nearest retrouve les n points les plus proches de la coordonnée fournie.

Sources

OSRM Documentation API : http://project-osrm.org/docs/v5.22.0/api/#general-options