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.

Changeset 71


Ignore:
Timestamp:
01/04/2012 22:33:49 (13 years ago)
Author:
djay
Message:

Traduction du chapitre 7

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/workshop-routing-foss4g/chapters/advanced.rst

    r63 r71  
    11============================================================================================================== 
    2 Advanced Routing Queries 
     2Requêtes de routage avancées 
    33============================================================================================================== 
    44 
    5 As explained in the previous chapter a shortest path query usualy looks like this: 
     5Comme expliqué dans le chapitre précédent une requête de recherche de plus court chemine ressemble généralement à ce qui suit : 
    66 
    77.. code-block:: sql 
     
    1111                to_cost, reverse_cost FROM ways', 6585, 8247, true, true); 
    1212         
    13 This is usually called **shortest** path, which means that a length of an edge is its cost. But cost doesn't need to be length, cost can be almost anything, for example time, slope, surface, road type, etc.. Or it can be a combination of multiple parameters ("Weighted costs"). 
     13On parle généralement de **plus court** chemin, ce qui signifie que la longueur d'un arc est son coût. Mais le coût n'est pas nécessairement une longueur, il peut représenter n'importe quoi, par exemple le temps, la surface, le type de routes, etc ... Ou il peut être la combinaison de plusieurs paramÚtres ("coûts pondérés"). 
    1414 
    1515.. note:: 
    1616 
    17         If you want to proceed with a routing database containing pgRouting functions, sample data and all required attributes, you can load the following database dump file.  
     17        Si vous souhaitez continuer avec une base de données contenant les fonctions pgRouting, les données exemples ainsi que les attributs nécessaires, vous pouvez charger le fichier de sauvegarded la maniÚre suivante. 
    1818 
    1919.. code-block:: bash 
    2020 
    21         # Optional: Drop database 
     21        # Optionel: supprimer la base de données 
    2222        dropdb -U postgres pgrouting-workshop 
    2323 
    24         # Load database dump file 
     24        # Charger le fichier de sauvegarde 
    2525        psql -U postgres -f ~/Desktop/pgrouting-workshop/data/sampledata_routing.sql 
    2626 
    2727------------------------------------------------------------------------------------------------------------- 
    28 Weighted costs 
     28Coûts pondérés 
    2929------------------------------------------------------------------------------------------------------------- 
    3030 
    31 In real networks there are different limitations or preferences for different road types for example. In other words, we don't want to get the *shortest* but the **cheapest** path - a path with a minimal cost. There is no limitation in what we take as costs. 
     31Dans un vrai réseau il y a différents types de limitations ou de préférences suivant les types de routes par exemple. En d'autre termes, nous ne voulons pas calculer *le plus court* chemin mais le chemin *le moins cher* - un chemin avec un coût minimum. Il n'y aucune limitation dans ce qui peut êtreutilsié pour définir le coût. 
    3232 
    33 When we convert data from OSM format using the osm2pgrouting tool, we get two additional tables for road ``types`` and road ``classes``: 
     33Lorsque nous avons convertis les données au format OSM en utilisant l'outil osm2pgrouting, nous avons deux autres tables permettant de déifinir les ``types`` de routes et les ``classes``. 
    3434 
    3535.. note:: 
    3636 
    37         We switch now to the database we previously generated with osm2pgrouting. From within PostgreSQL shell this is possible with the ``\c routing`` command. 
     37        Nous passons maintenant à la base de données que nuos avons générée avec osm2pgrouting. Depuis l'invite de commandes de PostgreSQL ceci est possible avec la commande ``\c routing``. 
    3838 
    39 .. rubric:: Run: ``SELECT * FROM types;`` 
     39.. rubric:: Lancer : ``SELECT * FROM types;`` 
    4040 
    4141.. code-block:: sql 
     
    4848           3 | tracktype 
    4949    
    50 .. rubric:: Run: ``SELECT * FROM classes;`` 
     50.. rubric:: Lancer : ``SELECT * FROM classes;`` 
    5151 
    5252.. code-block:: sql 
     
    8989         305 |       3 | grade5             |      
    9090 
    91 The road class is linked with the ways table by ``class_id`` field. After importing data the ``cost`` attribute is not set yet. Its values can be changed with an ``UPDATE`` query. In this example cost values for the classes table are assigned arbitrary, so we execute: 
     91La classe de route est liée avec la tables des cheminspar le champ ``class_id``. Suite à l'importation des données la valeur de la colonne ``cost`` n'est pas encore attribuée. Sa valeur peut être modifiée à l'aide d'une requête ``UPDATE``. Dans cet exemple les valeurs de coût pour la table des classe sont assigné de façon arbitraire, donc nous exécutons : 
    9292 
    9393.. code-block:: sql 
     
    101101        UPDATE classes SET cost=0.3 WHERE name IN ('motorway','motorway_junction','motorway_link'); 
    102102 
    103 For better performance, especially if the network data is large, it is better to create an index on the ``class_id`` field of the ways table and eventually on the ``id`` field of the ``types`` table. 
     103Pour de meilleures performances, tout spécialement si le réseau est important, il est préférable de créer un index sur la colonnes ``class_id`` de la table des chemins et eventuellement le champ ``id`` de la table ``types``. 
    104104 
    105105.. code-block:: sql 
     
    108108        CREATE INDEX classes_idx ON classes (id); 
    109109 
    110 The idea behind these two tables is to specify a factor to be multiplied with the cost of each link (usually length): 
     110L'idée de ces deux tables est de les utiliser afin de spécifier un facteur qui sera multiplié par le coût de parcour d'un tronçon (habituellement la longueur) : 
    111111 
    112112.. code-block:: sql 
     
    119119 
    120120------------------------------------------------------------------------------------------------------------- 
    121 Restricted access 
     121Restriction d'accÚs 
    122122------------------------------------------------------------------------------------------------------------- 
    123123 
    124 Another possibility is to restrict access to roads of a certain type by either setting a very high cost for road links with a certain attribute or by not selecting certain road links at all: 
     124Une autre possibilité est de restreindre l'accÚs à des routes d'un certains types soit en affectant un coût trÚs élevé à un tronçon ayant un certain attribut soit en s'assurant de ne sélectionner aucun de ces tronçons : 
    125125 
    126126.. code-block:: sql 
     
    128128        UPDATE classes SET cost=100000 WHERE name LIKE 'motorway%'; 
    129129 
    130 Through subqueries you can "mix" your costs as you like and this will change the results of your routing request immediately. Cost changes will affect the next shortest path search, and there is no need to rebuild your network. 
     130En utilisant des sous-requêtes vous pouvez "mixer" vos coût comme bon vous semble et cela modifiera le résultat obtenu imédiatement. Les changements de coûts affecteront la prochaine recherche de plus courts chemins, sans avoir à reconstruire le votre réseau. 
    131131 
    132 Of course certain road classes can be excluded in the ``WHERE`` clause of the query as well, for example exclude "living_street" class: 
     132Bien entendu, certaines classes de tronçon peuvent aussi être exclues à l'aide d'une clause ``WHERE`` dans la requête, par exemple pour exclure la classe "living_street" : 
    133133 
    134134.. code-block:: sql 
     
    140140                WHERE class_id=c.id AND class_id != 111', 6585, 8247, true, true); 
    141141 
    142 Of course pgRouting allows you all kind of SQL that is possible with PostgreSQL/PostGIS. 
     142Bien entendu, pgRouting vus permet tout types de requêtes SQL supportées par PostgreSQL/PostGIS. 
    143143  
Note: See TracChangeset for help on using the changeset viewer.