Changeset 70
- Timestamp:
- 01/04/2012 22:05:24 (13 years ago)
- Location:
- trunk/workshop-routing-foss4g/chapters
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/workshop-routing-foss4g/chapters/osm2pgrouting.rst
r69 r70 80 80 -clean 81 81 82 List des paramÚtres possible :82 Liste des paramÚtres possible : 83 83 84 84 .. list-table:: -
trunk/workshop-routing-foss4g/chapters/topology.rst
r63 r70 1 1 ============================================================================================================== 2 Cr eate a Network Topology2 Création de la topologie du réseau 3 3 ============================================================================================================== 4 4 … … 9 9 :align: center 10 10 11 In this chapter you will learn how to create a network topology from scratch. For that we will start with data that contains the minimum attributes needed for routing and show how to proceed step-by-step to build routable data for pgRouting. 11 Dans ce chapitre vous allez apprendre comment créer une topologie de réseau en partant de rien. Pour ce faire, nous allons commencer par les données qui contiennent les attributs minimum requis pour le routage et comment constituer étape par étape des données pour pgRouting. 12 12 13 13 ------------------------------------------------------------------------------------------------------------- 14 Load network data 14 Charger les données de réseau 15 15 ------------------------------------------------------------------------------------------------------------- 16 16 17 A t first we will load a database dump from the workshop ``data`` directory. This directory contains a compressed file with database dumps as well as a smaller network data of Denver downtown. If you haven't uncompressed the data yet, extract the file by17 Au début nous allors charger une sauvegarde de base de données à partir du répertoire ``data``des travxu pratiques. Ce répertoire contient un fichier compressé incluant une sauvegarde de base de données ainsi qu'un plus petit ensemble de données de réseau du centre ville de Denver. Si vous n'avez pas encore décompressé, faite le en utilisant la comande : 18 18 19 19 .. code-block:: bash … … 22 22 tar -xvzf data.tar.gz 23 23 24 The following command will import the database dump. It will add PostGIS and pgRouting functions to a database, in the same way as decribed in the previous chapter. It will also load the Denver sample data with a minimum number of attributes, which you will usually find in any network data:24 La commande suivante permet d'importer la sauvegarde de la base de données. Elle ajoutera les fonctions PostGIS et pgRouting à la base, de la même maniÚre que ce nous avons décrit dans le chapitre précédent. Cela chargera aussi le petit échantillon de données de Denver avec un nombre minimum d'attribut, que vous trouverez habituellement dans l'ensemble des données de réseau : 25 25 26 26 .. code-block:: bash 27 27 28 # Option al: Drop database28 # Optionel: supprimer la base de données 29 29 dropdb -U postgres pgrouting-workshop 30 30 31 # Load database dump file31 # Chargement du fichier de sauvegarde 32 32 psql -U postgres -f ~/Desktop/pgrouting-workshop/data/sampledata_notopo.sql 33 33 34 Let's see wich tables have been created:34 Regardons quelles tables ont été créées : 35 35 36 .. rubric:: Run: ``psql -U postgres -d pgrouting-workshop -c "\d"``36 .. rubric:: Lancer : ``psql -U postgres -d pgrouting-workshop -c "\d"`` 37 37 38 38 .. code-block:: sql … … 50 50 51 51 52 The table containing the road network data has the name ``ways``. It consists of the following attributes:52 La table contenant les données du réseau routier onle nom ``ways``. Elle possÚde les attributs suivants : 53 53 54 .. rubric:: Run: ``psql -U postgres -d pgrouting-workshop -c "\d ways"``54 .. rubric:: Lancer : ``psql -U postgres -d pgrouting-workshop -c "\d ways"`` 55 55 56 56 .. code-block:: sql … … 73 73 "enforce_srid_the_geom" CHECK (srid(the_geom) = 4326) 74 74 75 I t is common that road network data provides at least the following information:75 Il est habituel dans des données de réseau routier de retrouver au moins les informations suivantes : 76 76 77 * Road link ID(gid)78 * Road class(class_id)79 * Road link length(length)80 * Road name(name)81 * Road geometry(the_geom)77 * Identifiant de tronçon routier (gid) 78 * Classe de tronçon (class_id) 79 * Longuer du tronçon routier (length) 80 * Nom du tronçon (name) 81 * La géométrie du tronçon (the_geom) 82 82 83 This allows to display the road network as a PostGIS layer in GIS software, for example in QGIS. Though it is not sufficient for routing, because it doesn't contain network topology information.83 Cela permet d'afficher le réseau routier comme une couche PostGIS depuis un logiciel SIG, par exemple dans QGIS. Notez ue les informations ne suffisent pas au calcul de routes étant donné qu'il ne contient aucune information relative à la topolgie du réseau. 84 84 85 For the next steps we need to start the PostgreSQL command line tool 85 La prochaine étape consiste à démarrer l'outil en ligne de commande PostgreSQL 86 86 87 87 .. code-block:: bash … … 89 89 psql -U postgres pgrouting-workshop 90 90 91 ... o r usePgAdmin III.91 ... ou d'utiliser PgAdmin III. 92 92 93 93 94 94 -------------------------------------------------------------------------------------------------------------- 95 Calcul ate topology95 Calcul de la topologie 96 96 -------------------------------------------------------------------------------------------------------------- 97 97 98 Having your data imported into a PostgreSQL database usually requires one more step for pgRouting. You have to make sure that your data provides a correct network topology, which consists of information about source and target ID of each road link.98 Pour avoir vos données importé dans une base de données PostgreSQL requiÚre généralement des étapes supplémentaires pour pgRouting. Vous devez vous assurer que vos données fournissent une topologie correcte du réseau, ce qui correspond aux informations par rapport au début et à la fin d'un tronçon. 99 99 100 If your network data doesn't have such network topology information already you need to run the ``assign_vertex_id`` function. This function assigns a ``source`` and a ``target`` ID to each link and it can "snap" nearby vertices within a certain tolerance.100 Si les données de votre réseau ont une déjà telle information vous devez exécuter la fonctions ``assign_vertex_id``. Cette fonction permet l'assignation des valeurs pour les colonnes ``source`` et ``target`` pour chaque tronçon et il peut prendre en compte le fait qu'un sommet puisse être éloigné d'un autre suivant une certaine tolérance. 101 101 102 102 .. code-block:: sql … … 104 104 assign_vertex_id('<table>', float tolerance, '<geometry column', '<gid>') 105 105 106 First we have to add source and target column, then we run the assign_vertex_id function ... and wait.:106 PremiÚrement nous devons ajouter les colonnes source et target, pour ensuite utiliser la fonction assign_vertex_id ... et attendre : 107 107 108 108 .. code-block:: sql 109 109 110 -- A dd "source" and "target" column110 -- Ajouter les colonnes "source" et "target" 111 111 ALTER TABLE ways ADD COLUMN "source" integer; 112 112 ALTER TABLE ways ADD COLUMN "target" integer; 113 113 114 -- Run topology function114 -- Utiliser la fonction de contruction de topologie 115 115 SELECT assign_vertex_id('ways', 0.00001, 'the_geom', 'gid'); 116 116 117 117 .. note:: 118 118 119 Ex ecute ``psql -U postgres -d pgrouting-workshop`` in your terminal to connect to the database and start the PostgreSQL shell. Leave the shell with ``\q`` command.119 Exécuter ``psql -U postgres -d pgrouting-workshop`` depuis votre terminal afin de vous connecter à à l a base de données et lancer des commandes PostgreSQL en ligne. Quiter la session avec la commande ``\q`` . 120 120 121 121 .. warning:: 122 122 123 The dimension of the tolerance parameter depends on your data projection. Usually it's either "degrees" or "meters".123 La dimension du paramÚtre tolérance dépends du systÚme de projection de vos données. Habituellement c'est soit "degrés" soit "mÚtres". 124 124 125 125 126 126 ------------------------------------------------------------------------------------------------------------- 127 A dd indices127 Ajouter des indexes 128 128 ------------------------------------------------------------------------------------------------------------- 129 129 130 Fortunately we didn't need to wait too long because the data is small. But your network data might be very large, so it's a good idea to add an index to ``source`` and ``target`` column.130 Heureusement nous n'avons pas à attendre longtemps étant donné que notre jeu de données est trÚs petit. Mais la quantité de données d'un réseau pourrait être beaucoup plus importante, donc il vaut mieux ajouter des indexes pour les colonnes ``source`` et ``target``. 131 131 132 132 .. code-block:: sql … … 135 135 CREATE INDEX target_idx ON ways("target"); 136 136 137 After these steps our routing database look like this:137 Suite à ces étapes, notre base de données routing ressemble à ceci : 138 138 139 .. rubric:: Run: ``\d``139 .. rubric:: Lancer : ``\d`` 140 140 141 141 .. code-block:: sql … … 152 152 (6 rows) 153 153 154 .. rubric:: Run: ``\d ways``154 .. rubric:: Lancer : ``\d ways`` 155 155 156 156 .. code-block:: sql … … 177 177 "enforce_srid_the_geom" CHECK (srid(the_geom) = 4326) 178 178 179 No w we are ready for our first routing query with :doc:`Dijkstra algorithm <shortest_path>`!179 Nous sommes fin prêts pour notre premiÚre requête de routage avec `l'algorithme de Dijkstra <shortest_path>` !
Note: See TracChangeset
for help on using the changeset viewer.