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 14/08/2015, 22:12]
78.243.184.110 [Retraitement du fichier pbf]
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>Trusty ​SIG openstreetmap ​itinéraires ​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. +
-  * Avoir [[:​tutoriel:​comment_installer_un_paquet|installé ​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 ===== +
-  +
-==== Télécharger les sources ====+
  
-<​code>​ 
-git clone https://​github.com/​Project-OSRM/​osrm-backend.git 
-</​code>​ 
  
-==== Compiler ​====+===== Installation =====
  
-Se placer ​dans le réperoire ​à l'​intérieur duquel les sources ont été téléchargées : +  * Télécharger les sources : <​code>​git clone https://​github.com/​Project-OSRM/​osrm-backend.git</​code>​ 
-<​code>​ +  * 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>​ 
-cd osrm-backend +  ​* ​Puis lancer la compilation : <​code>​mkdir -p build
-</​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 60: 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 82: 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 89: 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 97: Ligne 81:
 </​code>​ </​code>​
  
 +<note tip>​Lorsque la taille du fichier stxxl excède l'​espace disponible sur la partition, l'​erreur <"​External memory block allocation error">​ est affichée.</​note>​
 +
 +Pour plus d'​information (en anglais) : [[https://​github.com/​Project-OSRM/​osrm-backend/​wiki/​Running-OSRM|Projet OSRM]]
 ==== Retraitement du fichier pbf ==== ==== Retraitement du fichier pbf ====
 Le retraitement du fichier pbf permettra l'​élimination des données inutiles pour le routage et leur reformatage aux normes utilisées par Osrm. Le retraitement du fichier pbf permettra l'​élimination des données inutiles pour le routage et leur reformatage aux normes utilisées par Osrm.
Ligne 108: 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 117: 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 126: 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 136: 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 149: 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 164: Ligne 173:
    
 ===== Voir aussi ===== ===== Voir aussi =====
-  + 
-  * **(en)** [[http://​project-osrm.org/​|Projet OSRM]] +    * [[nominatim|Nominatim]] 
-  ​* ​ + 
-  * **(fr)** [[http://​dogeo.fr/​osrm-installation/|Dogeo]] +   * **(en)** [[http://​project-osrm.org/​|Projet OSRM]] 
-  ​* ​+ 
 +  * **(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.1439583134.txt.gz
  • Dernière modification: Le 14/08/2015, 22:12
  • par 78.243.184.110