pgRouting Manual (2.0.0)

Prise en main

«  Tutoriel   ::   Contenu   ::   Topologie de routage  »

Prise en main

Ceci est un guide simplifié pour vous guider pas à pas à démarrer avec pgRouting. Dans ce guide nous détaillerons :

  • Comment créer une base de données pour notre projet
  • Comment charger des données
  • Comment construire une topologie
  • Comment vérifier les erreurs de votre graphe
  • Comment calculer une route
  • Comment utiliser d’autres outils pour votre graphe et votre route
  • Comment créer une application web

Comment créer une base de données pour notre projet

La première chose que nous avons besoin de faire est de créer une base de données et charger pgrouting dans la base de données. Typiquement vous allez créer une base de données pour chaque projet. Une fois que vous avez une base de données sur laquelle travailler, vous pouvez charger vos données et construire votre application à partir de cette base de données. Cela facilite les choses si vous voulez plus tard migrer le projet sur un serveur de production.

Pour Postgresql 9.1 et les versions ultérieures

createdb mydatabase
psql mydatabase -c "create extension postgis"
psql mydatabase -c "create extension pgrouting"

Pour les versions précédentes de postgresql

createdb -T template1 template_postgis
psql template_postgis -c "create language plpgsql"
psql template_postgis -f /usr/share/postgresql/9.0/contrib/postgis-1.5/postgis.sql
psql template_postgis -f /usr/share/postgresql/9.0/contrib/postgis-1.5/spatial_ref_sys.sql
psql template_postgis -f /usr/share/postgresql/9.0/contrib/postgis_comments.sql

createdb -T template_postgis template_pgrouting
psql template_pgrouting -f /usr/share/postgresql/9.0/contrib/pgrouting-2.0/pgrouting.sql

createdb -T template_pgrouting mydatabase

Comment charger des données

La façon dont vous chargez vos données dépend du format des données. Il existe des outils OpenSource variés qui peuvent vous aider, comme :

shp2pgsql:
  • c’est le chargeur de fichier au format postgresql
ogr2ogr:
  • c’est un utilitaire de conversion de données vectorielles
osm2pgsql:
  • c’est un outil de chargement des données OSM dans postgresql

Ces outils et probablement d’autres vont donc vous permettre de lire des données vectorielles et peuvent charger ces données dans votre base de données comme une table d’un certain type. A ce point vous avez besoin de connaître un peu votre structure de données et son contenu. Un moyen facile d’explorer vos tables de données est d’utiliser pgAdmin3 ou phpPgAdmin.

Comment construire une topologie

Ensuite nous avons besoin de construire une topologie de nos données routières. Cela signifie que pour toute arête dans vos données routieres, les terminaisons de cette arête vont être connectées en un unique noeud et aux autres arêtes qui sont aussi connectées à ce meme noeud. Une fois que les arêtes sont connectées aux noeuds nous avons un graphe qui peut etre utilisé pour le routage avec pgrouting. Nous proposons un outil qui aide pour cela :

select pgr_createTopology('myroads', 0.000001);

Voir pgr_createTopology pour plus d’informations.

Comment vérifier les erreurs de votre graphe

Il y a beaucoup de sources d’erreurs possibles dans un graphe. Les données avec lesquelles vous avez commencé peuvent ne pas avoir été conçues avec l’idée de routage. Un graphe a des conditions très spécifiques. L’une est qu’il est NODED, cela signifie que mis à part des cas d’utilisation très spécifiques, chaque segment de route commence et finit comme un nœud et en général ne croise pas d’autre segment de route avec lequel il devrait être connecté.

Il peut y avoir d’autres erreurs comme la direction d’une route à sens unique étant entrée dans la mauvaise direction. Nous n’avons pas les outils pour chercher toutes les erreurs possibles mais nous avons les outils qui peuvent aider.

select pgr_analyzegraph('myroads', 0.000001);
select pgr_analyzeoneway('myroads',  s_in_rules, s_out_rules,
                                     t_in_rules, t_out_rules
                                     direction)

Voir Analytiques de graphe pour plus d’informations.

Si vos données ont besoin d’être NODED, nous avons un outil qui peut aider pour cela aussi.

Voir pgr_nodeNetwork pour plus d’informations.

Comment calculer une route

Une fois que vous avez tout le travail préparatoire de-dessus fini, calculer une route est assez facile. Nous avons beaucoup d’algorithmes différents mais ils peuvent fonctionner avec votre réseau de routes préparé. La forme générale d’une route est :

select pgr_<algorithm>(<SQL for edges>, start, end, <additonal options>)

As you can see this is fairly straight forward and you can look and the specific algorithms for the details on how to use them. What you get as a result from these queries will be a set of record of type pgr_costResult[] or pgr_geomResult[]. These results have information like edge id and/or the node id along with the cost or geometry for the step in the path from start to end. Using the ids you can join these result back to your edge table to get more information about each step in the path.

Comment utiliser d’autres outils pour votre graphe et votre route

À déterminer

Comment créer une application web

À déterminer

«  Tutoriel   ::   Contenu   ::   Topologie de routage  »