source:
trunk/workshop-routing-foss4g/chapters/osm2pgrouting.rst
@
69
Revision 69, 6.7 KB checked in by djay, 13 years ago (diff) |
---|
Outils d'import osm2pgrouting
osm2pgrouting est un outils en ligne de commande qui rend simple l'importation de données OpenStreetMap dans une base de données pgRouting. Il contruit le réseau routier automatiquement et crée les tables pour les types de données et les classes de routes. osm2pgrouting a été écrit initialement par Daniel Wendt et est maintenant disponible sur le site du projet pgRouting : http://www.pgrouting.org/docs/tools/osm2pgrouting.html
Note
Il y a quelques limitations, particuliÚrement par rapport à la taille du réseay. La version actuelle nécessite le chargement en mémoire de l'ensemble des données, ce qui le rend rapide mais consome aussi beaucoup de mémoire pour les gros enesemble d'objets. Un outils alternatif n'ayant pas de limitation sur la taille du réseauest osm2po (http://osm2po.de). Il est disponible sous licence "Freeware License".
Les données brutres d'OpenStreetMap contiennent bien plus d'éléments et d'informations qu'il est nécessaire pour du routage. Ainsi le format n'est pas utilisable tel-quel avec pgRouting. Un fichier XML .osm contient trois types de données majeurs :
- noeuds
- chemins
- relations
Les données de sampledata.osm par exemple ressemble à ce qui suit :
Une description détaillée de tout les types et classes possibles d'OpenStreetMap peuvent-être trouvé ici : http://wiki.openstreetmap.org/index.php/Map_features.
Lorsuqe vous utilisez osm2pgrouting, nous devons conserver uniquement les noeuds et les chemin ayant pour types et classes celles stipulée dans le fichier mapconfig.xml qui seront improtés dans notre base de données routing :
Le fichier mapconfig.xml``par défaut est installé dans le répertoire : ``/usr/share/osm2pgrouting/.
Création de la base de données routing
Avant de lancer osm2pgrouting nous devons créer la base de données et y charger les fonctionalités de PostGIS et pgRouting . Si vous avez installé le modÚle de base de données comme décrit dans le chapitre précédent, créer une base de données prête à utiliser pgRouting est fait par une simple commande. Ouvrez une fenêtre de terminal et utiliser la commande suivante :
... vous avez terminé.
Une alternative consiste à utiliser l'outil PgAdmin III et des requêtes SQL. Démarrez PgAdmin III (disponible sur le LiveDVD), connectez vous à une base de données eyt ouvrez l'éditeur de requêtes afin d'y saisir les requêtes SQL suivantes :
-- Créationde la base routing CREATE DATABASE "routing" TEMPLATE "template_routing";
Sinon, vous devez manuellement charger différents fichier dans la base de données. Voir : :ref:`previous chapter <installation_load_functions>`.
Utiliser osm2pgrouting
La prochaine étape c'est de lancer l'outil osm2pgrouting, qui est un outil en ligne de commande, donc vous devrez l'utiliser depuis une fenêtre de terminal.
Nous prendrons par défaut le fichier de configuration mapconfig.xml et la base de données routing que nous avons créer précédemment. De plus nous prendrons le fichier ~/Desktop/pgrouting-workshop/data/sampledata.osm comme données brutes. Ce fichier contient seulement les données OSM du centre ville de Denver afin d'accélérer le processus de chargement des données.
Les données sont disponibles au format compressé, qui doit donc être décompressé soit en utlisant un navigateur de fichier soit en utilisant la commande suivante :
Lancer ensuite l'outil :
List des paramÚtres possible :
ParamÚtre | Valeur | Déscription | Requis |
-file | <fichier> | le nom du fichier XML .osm | yes |
-dbname | <nom_de_base> | le nom de votre base de données | yes |
-user | <utilisateur> | le nom de l'utilisateur, qui a le droit d'accÚs en écriture sur la base de données | yes |
-conf | <fichier> | le nom du fichier XML de configuration | yes |
-host | <hÎte> | l'hÎte de votre base de données postgresql (par défaut : 127.0.0.1) | no |
-port | <port> | le numéro de port de votre serveur de base de données(par défaut: 5432) | no |
-passwd | <mot_de_passe> | le mot de passe pour se connecter à la base de données | no |
-clean | Suprrimer les tables précédemment créées | no |
Note
Si vous obtenez un message d'erreur relatif aux droits de l'utilisateur postgres, vous pouvez définir la méthode comme trust dans le fichier /etc/postgresql/8.4/main/pg_hba.conf et redémarrer le serveur PostgreSQL avec la commande sudo service postgresql-8.4 restart.
Suivant la taille de votre réseau le temps de cacul et d'importation de données peut être long. Une fois terminé, connectez à votre base de données et vérifiez les tables qui aurait du être créées :
Lancer: psql -U postgres -d routing -c "\d"
Si tout se passe bien, le résultat devrait ressembler à ceci :
List of relations Schema | Name | Type | Owner --------+---------------------+----------+---------- public | classes | table | postgres public | geometry_columns | table | postgres public | nodes | table | postgres public | spatial_ref_sys | table | postgres public | types | table | postgres public | vertices_tmp | table | postgres public | vertices_tmp_id_seq | sequence | postgres public | ways | table | postgres (8 rows)