Bienvenue sur PostGIS.fr

Bienvenue sur PostGIS.fr , le site de la communauté des utilisateurs francophones de PostGIS.

PostGIS ajoute le support d'objets géographique à la base de données PostgreSQL. En effet, PostGIS "spatialise" le serverur PostgreSQL, ce qui permet de l'utiliser comme une base de données SIG.

Maintenu à jour, en fonction de nos disponibilités et des diverses sorties des outils que nous testons, nous vous proposons l'ensemble de nos travaux publiés en langue française.

source: trunk/workshop-routing-foss4g/chapters/osm2pgrouting.rst @ 69

Revision 69, 6.7 KB checked in by djay, 13 years ago (diff)

Add chapter 4

RevLine 
[63]1==============================================================================================================
[69]2Outils d'import osm2pgrouting
[63]3==============================================================================================================
4
[69]5**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
[63]6
7.. note::
8
[69]9        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".
[63]10       
11
[69]12Les 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 :
[63]13
[69]14* noeuds
15* chemins
[63]16* relations
17
[69]18Les données de sampledata.osm par exemple ressemble à ce qui suit :
[63]19
20.. literalinclude:: code/osm_sample.osm
21        :language: xml
22
[69]23Une 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.
[63]24
[69]25Lorsuqe 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 :
[63]26
27.. literalinclude:: code/mapconfig_sample.xml
28        :language: xml
29
[69]30Le fichier ``mapconfig.xml``par défaut est installé dans le répertoire : ``/usr/share/osm2pgrouting/``.
[63]31
32
33-------------------------------------------------------------------------------------------------------------
[69]34Création de la base de données routing
[63]35-------------------------------------------------------------------------------------------------------------
36
[69]37Avant de lancer osm2pgrouting nous devons créer la base de données et y charger les fonctionalités de PostGIS et pgRouting .
38Si 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 :
[63]39
40.. code-block:: bash
41
42        createdb -U postgres -T template_routing routing
43       
[69]44... vous avez terminé.
[63]45
[69]46Une 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 :
[63]47
48.. code-block:: sql
49
[69]50        -- Créationde la base routing
[63]51        CREATE DATABASE "routing" TEMPLATE "template_routing";
52
53
[69]54Sinon, vous devez manuellement charger différents fichier dans la base de données. Voir : :ref:`previous chapter <installation_load_functions>`.
[63]55
56       
57-------------------------------------------------------------------------------------------------------------
[69]58Utiliser osm2pgrouting
[63]59-------------------------------------------------------------------------------------------------------------
60
[69]61La 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.
[63]62
[69]63Nous 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.
[63]64
[69]65Les 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 :
[63]66
67.. code-block:: bash
68
69        cd ~/Desktop/pgrouting-workshop/
70        tar -xvzf data.tar.gz
71
[69]72Lancer ensuite l'outil :
[63]73       
74.. code-block:: bash
75
76        osm2pgrouting -file "data/sampledata.osm" \
77                                  -conf "/usr/share/osm2pgrouting/mapconfig.xml" \
78                                  -dbname routing \
79                                  -user postgres \
80                                  -clean
81                                       
[69]82List des paramÚtres possible :
[63]83
84.. list-table::
85   :widths: 15 15 60 10
86
[69]87   * - **ParamÚtre**
88     - **Valeur**
89     - **Déscription**
90     - **Requis**
[63]91   * - -file
[69]92     - <fichier>
93     - le nom du fichier XML .osm
[63]94     - yes
95   * - -dbname
[69]96     - <nom_de_base>
97     - le nom de votre base de données
[63]98     - yes
99   * - -user
[69]100     - <utilisateur>
101     - le nom de l'utilisateur, qui a le droit d'accÚs en écriture sur la base de données
[63]102     - yes
103   * - -conf
[69]104     - <fichier>
105     - le nom du fichier XML de configuration
[63]106     - yes
107   * - -host
[69]108     - <hÃŽte>
109     - l'hÃŽte de votre base de données postgresql (par défaut : 127.0.0.1)
[63]110     - no
111   * - -port
112     - <port>
[69]113     - le numéro de port de votre serveur de base de données(par défaut: 5432)
[63]114     - no
115   * - -passwd
[69]116     - <mot_de_passe>
117     - le mot de passe pour se connecter à la base de données
[63]118     - no
119   * - -clean
120     -
[69]121     - Suprrimer les tables précédemment créées
[63]122     - no
123
124.. note::
125
[69]126        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``.
[63]127
128
[69]129Suivant 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 :
[63]130
[69]131.. rubric:: Lancer: ``psql -U postgres -d routing -c "\d"``     
[63]132
[69]133Si tout se passe bien, le résultat devrait ressembler à ceci :
[63]134       
135.. code-block:: sql
136
137                             List of relations
138         Schema |        Name         |   Type   |  Owner   
139        --------+---------------------+----------+----------
140         public | classes             | table    | postgres
141         public | geometry_columns    | table    | postgres
142         public | nodes               | table    | postgres
143         public | spatial_ref_sys     | table    | postgres
144         public | types               | table    | postgres
145         public | vertices_tmp        | table    | postgres
146         public | vertices_tmp_id_seq | sequence | postgres
147         public | ways                | table    | postgres
148        (8 rows)
149
150       
151
Note: See TracBrowser for help on using the repository browser.