Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
osrm [Le 17/03/2018, 12:47]
90.26.81.36 mise en forme
osrm [Le 11/09/2022, 11:04] (Version actuelle)
moths-art Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892)
Ligne 1: Ligne 1:
-{{tag>Xenial Trusty ​SIG openstreetmap BROUILLON}}+{{tag>Bionic ​SIG openstreetmap BROUILLON}}
 ---- ----
    
Ligne 21: Ligne 21:
 Le résultat du calcul OSRM peut apparaître un peu difficile à lire. Voir en bas de page une suggestion de script pour y voir plus clair. Le résultat du calcul OSRM peut apparaître un peu difficile à lire. Voir en bas de page une suggestion de script pour y voir plus clair.
  
 +=====Pré-requis=====
  
-===== Pré-requis ===== +[[:tutoriel:​comment_installer_un_paquet|Installer les paquets]] : **[[apt>​build-essential,​git,​cmake,​pkg-config,​libprotoc-dev,​libprotobuf9v5,​protobuf-compiler,​libprotobuf-dev,​libosmpbf-dev,​libpng12-dev,​libbz2-dev,​libstxxl-dev,​libstxxl-doc,​libstxxl1v5,​libxml2-dev,​libzip-dev,​libboost-all-dev,​lua5.2,​liblua5.2-dev,​libtbb-dev,​doxygen,​checkinstall]]**.
-  +
-  * Disposer des [[:sudo|droits d'​administration]]. +
-  ​Disposer d'une connexion à Internet configurée et activée.+
  
-====Pour Ubuntu 16.04==== 
-[[:​tutoriel:​comment_installer_un_paquet|Installer les paquets]] **[[apt>​build-essential|build-essential]]** **[[apt>​git|git]]** **[[apt>​cmake|cmake]]** **[[apt>​pkg-config|pkg-config]]** **[[apt>​libprotoc-dev|libprotoc-dev]]** **[[apt>​libprotobuf9v5 |libprotobuf9v5 ]]** **[[apt>​protobuf-compiler|protobuf-compiler]]** **[[apt>​libprotobuf-dev|libprotobuf-dev]]** **[[apt>​libosmpbf-dev|libosmpbf-dev]]** **[[apt>​libpng12-dev|libpng12-dev]]** **[[apt>​libbz2-dev|libbz2-dev]]** **[[apt>​libstxxl-dev|libstxxl-dev]]** **[[apt>​libstxxl-doc|libstxxl-doc]]** **[[apt>​libstxxl1v5|libstxxl1v5]]** **[[apt>​libxml2-dev|libxml2-dev]]** **[[apt>​libzip-dev|libzip-dev]]** **[[apt>​libboost-all-dev|libboost-all-dev]]** **[[apt>​lua5.1|lua5.1]]** **[[apt>​liblua5.1-0-dev|liblua5.1-0-dev]]** **[[apt>​libluabind-dev|libluabind-dev]]** **[[apt>​libluajit-5.1-dev|libluajit-5.1-dev]]** **[[apt>​libtbb-dev|libtbb-dev]]** **[[apt>​doxygen|doxygen]]** **[[apt>​checkinstall|checkinstall]]**. 
-<​code>​ 
-sudo apt-get install build-essential git cmake pkg-config libprotoc-dev libprotobuf9v5 protobuf-compiler libprotobuf-dev libosmpbf-dev libpng12-dev libbz2-dev libstxxl-dev libstxxl-doc libstxxl1v5 libxml2-dev libzip-dev libboost-all-dev lua5.1 liblua5.1-0-dev libluabind-dev libluajit-5.1-dev libtbb-dev doxygen checkinstall 
-</​code>​ 
  
-====Pour Ubuntu 14.04==== 
-[[:​tutoriel:​comment_installer_un_paquet|Installer les paquets]] **[[apt>​build-essential|build-essential]]** **[[apt>​git|git]]** **[[apt>​cmake|cmake]]** **[[apt>​pkg-config|pkg-config]]** **[[apt>​libprotoc-dev|libprotoc-dev]]** **[[apt>​libprotobuf8|libprotobuf8]]** **[[apt>​protobuf-compiler|protobuf-compiler]]** **[[apt>​libprotobuf-dev|libprotobuf-dev]]** **[[apt>​libosmpbf-dev|libosmpbf-dev]]** **[[apt>​libpng12-dev|libpng12-dev]]** **[[apt>​libbz2-dev|libbz2-dev]]** **[[apt>​libstxxl-dev|libstxxl-dev]]** **[[apt>​libstxxl-doc|libstxxl-doc]]** **[[apt>​libstxxl1|libstxxl1]]** **[[apt>​libxml2-dev|libxml2-dev]]** **[[apt>​libzip-dev|libzip-dev]]** **[[apt>​libboost-all-dev|libboost-all-dev]]** **[[apt>​lua5.1|lua5.1]]** **[[apt>​liblua5.1-0-dev|liblua5.1-0-dev]]** **[[apt>​libluabind-dev|libluabind-dev]]** **[[apt>​libluajit-5.1-dev|libluajit-5.1-dev]]** **[[apt>​libtbb-dev|libtbb-dev]]**. 
-<​code>​ 
-sudo apt-get install build-essential git cmake pkg-config libprotoc-dev libprotobuf8 protobuf-compiler libprotobuf-dev libosmpbf-dev libpng12-dev libbz2-dev libstxxl-dev libstxxl-doc libstxxl1 libxml2-dev libzip-dev libboost-all-dev lua5.1 liblua5.1-0-dev libluabind-dev libluajit-5.1-dev libtbb-dev 
-</​code>​ 
-  
 ===== Installation ===== ===== Installation =====
-  
-==== Télécharger les sources ==== 
  
-<​code>​ +  * Télécharger les sources : ​<​code>​git clone https://​github.com/​Project-OSRM/​osrm-backend.git</​code>​ 
-git clone https://​github.com/​Project-OSRM/​osrm-backend.git +  ​* ​Compiler en se plaçant ​dans le répertoire ​à l'​intérieur duquel les sources ont été téléchargées : <​code>​cd osrm-backend</​code>​ 
-</​code>​ +  ​* ​Puis lancer la compilation : <​code>​mkdir -p build
- +
-==== Compiler ​==== +
- +
-Se placer ​dans le réperoire ​à l'​intérieur duquel les sources ont été téléchargées : +
-<​code>​ +
-cd osrm-backend +
-</​code>​ +
- +
-Puis lancer la compilation : +
- +
-<​code>​ +
-mkdir -p build+
 cd build cd build
 cmake .. cmake ..
 make make
-sudo checkinstall+sudo checkinstall ​--pkgname osrm-backend
 </​code>​ </​code>​
  
Ligne 68: Ligne 41:
 <​code>​ <​code>​
 cd <​répertoire build> cd <​répertoire build>
-ln -s ../​profiles/​car.lua ​profile.lua+mkdir profiles 
 +cd profiles 
 +ln -s ../../​profiles/​car.lua 
 +cd ..
 ln -s ../​profiles/​lib/​ ln -s ../​profiles/​lib/​
 </​code>​ </​code>​
-Le serveur est installé. ​+Le serveur est installé.
    
 ===== Configuration ===== ===== Configuration =====
Ligne 90: Ligne 66:
 La syntaxe de l'​instruction est la suivante : La syntaxe de l'​instruction est la suivante :
 disque=nom_complet_du_disque,​capacité,​méthode_d’accès disque=nom_complet_du_disque,​capacité,​méthode_d’accès
- *  nom_complet_du_disque : chemin complet d’accès au disque depuis la racine : /tmp/stxxl, /mnt/disk0, /​media/​utilisateur/​mon_disque par exemple. ​+ *  nom_complet_du_disque : chemin complet d’accès au disque depuis la racine : /tmp/stxxl, /mnt/disk0, /​media/​utilisateur/​mon_disque par exemple.
  *  capacité : capacité maximale du disque en mégaoctets. Sur le site osrm la valeur 25000 est souvent conseillée,​ plusieurs posts de forums suggèrent de porter cette valeur à 100000 pour le fichier de la planète entière.  *  capacité : capacité maximale du disque en mégaoctets. Sur le site osrm la valeur 25000 est souvent conseillée,​ plusieurs posts de forums suggèrent de porter cette valeur à 100000 pour le fichier de la planète entière.
  *  méthode_d'​accés : à choisr parmi les différentes implémentations d’accès au disque.  *  méthode_d'​accés : à choisr parmi les différentes implémentations d’accès au disque.
Ligne 97: Ligne 73:
  *  simdisk : simule l'​horloge (timings ?) du disque IBM IC35L080AVVA07. nom_complet_du_disque doit pointer sur un fichier situé sur une partition RAM disposant d'un espace disque suffisant.  *  simdisk : simule l'​horloge (timings ?) du disque IBM IC35L080AVVA07. nom_complet_du_disque doit pointer sur un fichier situé sur une partition RAM disposant d'un espace disque suffisant.
  
-Il est généralement conseillé d'​installer le fichier de la planète entière sur une partition séparée afin de prévenir un grand nombre d’accès disque en lecture/​écriture qui ralentissent le fonctionnement. ​+Il est généralement conseillé d'​installer le fichier de la planète entière sur une partition séparée afin de prévenir un grand nombre d’accès disque en lecture/​écriture qui ralentissent le fonctionnement.
  
 Exemple de création d'un fichier <​.stxxl>​ Exemple de création d'un fichier <​.stxxl>​
Ligne 119: Ligne 95:
  ​./​osrm-extract provence-alpes-cote-d-azur-latest.osm.pbf ​  ​./​osrm-extract provence-alpes-cote-d-azur-latest.osm.pbf ​
 </​code>​ </​code>​
 +
 +<​note>​
 +Attention : si vous obtenez l'​erreur "TBB Warning: Exact exception propagation is requested by application but the linked library is built without support for it" c'est que votre machine manque de RAM... vous pouvez y remédier en ajoutant plus de swap :
 +<​code>​
 +fallocate -l 64G memory.swap
 +chmod 600 memory.swap
 +mkswap memory.swap
 +sudo chown root: memory.swap
 +sudo swapon memory.swap
 +</​code>​
 +</​note>​
 +
 il est ensuite nécessaire de hiérarchiser ces données : il est ensuite nécessaire de hiérarchiser ces données :
 <​code>​ <​code>​
-./osrm-prepare ​provence-alpes-cote-d-azur-latest.osrm+./osrm-contract ​provence-alpes-cote-d-azur-latest.osrm
 </​code>​ </​code>​
  
Ligne 128: Ligne 116:
 ===== Utilisation ===== ===== Utilisation =====
 ==== Démarrage du serveur ==== ==== Démarrage du serveur ====
-Le démarrage du serveur s'​effectue en ligne de commande. Il suffit de lancer l'​executable osrm-routed suivi du chemin vers le fichier .osrm créé avec osrm-extract et osrm-prepare. Exemple :+Le démarrage du serveur s'​effectue en ligne de commande. Il suffit de lancer l'​executable osrm-routed suivi du chemin vers le fichier .osrm créé avec osrm-extract et osrm-contract. Exemple :
 <​code>​ <​code>​
 ./​osrm-routed ../​donnees_carto/​provence-alpes-cote-d-azur-latest.osrm ./​osrm-routed ../​donnees_carto/​provence-alpes-cote-d-azur-latest.osrm
Ligne 137: Ligne 125:
 [info] running and waiting for requests [info] running and waiting for requests
 </​code>​ </​code>​
 +
 +<​note>​En fonction de la taille de votre carte et des performances de votre machine, ce message peut mettre du temps avant d'​apparaitre : tant qu'il n'est pas affiché, inutile de lancer une requête pour tester si ça fonctionne !</​note>​
  
 ==== Arrêt du serveur ==== ==== Arrêt du serveur ====
Ligne 147: Ligne 137:
 ==== Lancement des requêtes ==== ==== Lancement des requêtes ====
 L'​utilisation d'Osrm se fait dans le navigateur interne en saisissant localhost:​5000 comme adresse. L'​utilisation d'Osrm se fait dans le navigateur interne en saisissant localhost:​5000 comme adresse.
 +
 +/!\ Documentation complète de l'API disponible sur la page du projet
 +
 +http://​project-osrm.org/​docs/​v5.15.2/​api/#​nearest-service
 +
 +http://​project-osrm.org/​docs/​v5.15.2/​api/#​general-options
 +
 +NB : la forme et les options d'​appels de l'API ont un peu évolué par rapport aux exemples cités ci-après
  
 La fonctionnalité utilisée pour obtenir un itinéraire est viaroute, suivi des coordonnées des points à relier. La fonctionnalité utilisée pour obtenir un itinéraire est viaroute, suivi des coordonnées des points à relier.
Ligne 160: Ligne 158:
 http://​router.project-osrm.org/​viaroute?​loc=43.29528,​5.37439&​loc=43.52339,​5.44452&​instructions=true http://​router.project-osrm.org/​viaroute?​loc=43.29528,​5.37439&​loc=43.52339,​5.44452&​instructions=true
  
-Les résultats ne seront pas forcément identiques entre les deux serveurs selon les données figurant dans chacune des bases de donnée mais c'est excessivement proche. ​+Les résultats ne seront pas forcément identiques entre les deux serveurs selon les données figurant dans chacune des bases de donnée mais c'est excessivement proche.
  
-<note tip>Pour connaître les coordonnées géographiques d'un point particulier,​ le site [[http://​tile.openstreetmap.fr/​|http://​tile.openstreetmap.fr/​]] permet de faire apparaître en bas à droite de l'​écran les coordonnées du point survolé par le curseur de la souris. Utile pour un usage occasionnel,​ probablement pas si vous avez fait le choix d'​installer OSRM. En effet, dans ce cas on peut supposer que vous disposez déjà d'un nombre conséquent de coordonnées géographiques organisées en base de données.</​note>​+<note tip>Pour connaître les coordonnées géographiques d'un point particulier,​ le site [[https://​tile.openstreetmap.fr/​|https://​tile.openstreetmap.fr/​]] permet de faire apparaître en bas à droite de l'​écran les coordonnées du point survolé par le curseur de la souris. Utile pour un usage occasionnel,​ probablement pas si vous avez fait le choix d'​installer OSRM. En effet, dans ce cas on peut supposer que vous disposez déjà d'un nombre conséquent de coordonnées géographiques organisées en base de données.</​note>​
  
 ==== Retraiter les données ==== ==== Retraiter les données ====
Ligne 180: Ligne 178:
    * **(en)** [[http://​project-osrm.org/​|Projet OSRM]]    * **(en)** [[http://​project-osrm.org/​|Projet OSRM]]
  
-  * **(fr)** [[http://​dogeo.fr/​osrm-installation/|Dogeo]]+  * **(fr)** [[https://blog.dogeo.fr/2015/02/23/​osrm-installation.html|Dogeo]]
  
   * **(fr)** [[http://​openstreetmap.fr/​osrm-10M|OSRM sur openstreetmap]]   * **(fr)** [[http://​openstreetmap.fr/​osrm-10M|OSRM sur openstreetmap]]
  • osrm.1521287221.txt.gz
  • Dernière modification: Le 17/03/2018, 12:47
  • par 90.26.81.36