Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Dernière révision Les deux révisions suivantes | ||
osrm [Le 17/03/2018, 11:39] 159.180.232.226 [Pré-requis] |
osrm [Le 15/02/2022, 15:32] 90.8.228.183 [Voir aussi] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | {{tag>Trusty SIG openstreetmap BROUILLON}} | + | |
+ | {{tag>Bionic SIG openstreetmap BROUILLON}} | ||
---- | ---- | ||
Ligne 21: | Ligne 22: | ||
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===== | ||
+ | |||
+ | [[: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]]**. | ||
- | ===== Pré-requis ===== | ||
- | |||
- | * Disposer des [[:sudo|droits d'administration]]. | ||
- | * Disposer d'une connexion à Internet configurée et activée. | ||
- | * sous 14.04 : 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> | ||
- | * sous 16.04 : 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>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]]**. | ||
- | <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 | ||
- | </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 65: | Ligne 42: | ||
<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> | ||
Ligne 116: | Ligne 96: | ||
./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 125: | Ligne 117: | ||
===== 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 134: | Ligne 126: | ||
[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 144: | Ligne 138: | ||
==== 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 159: | Ligne 161: | ||
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 177: | Ligne 179: | ||
* **(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]] |