Guide d'utilisation de pgRouting
pgRouting
est un module d'extension pour PostgreSQL et PostGIS, offrant divers algorithmes et fonctionnalités de routage, tels que le plus court chemin, le problème du voyageur de commerce et l'analyse des zones de service, adaptés aux domaines tels que le transport, la logistique et l'analyse réseau. Cet article explique en détail comment installer et utiliser pgRouting
sur ServBay.
Installation de pgRouting
ServBay inclut déjà le module d'extension pgRouting
. Vous n'avez qu'à l'activer dans la base de données. Voici les étapes pour activer pgRouting
:
Se connecter à la base de données PostgreSQL :
bashpsql -U votre_nom_utilisateur -d votre_base_de_données
1Créer l'extension :
sqlCREATE EXTENSION pgrouting;
1Vérifier l'installation :
sql\dx
1
Configuration de pgRouting
Après avoir activé pgRouting
, vous pouvez créer et gérer des données de réseau routier et utiliser divers algorithmes de routage pour l'analyse.
Création de la table des données du réseau routier
Voici un exemple montrant comment créer une table contenant des données de réseau routier.
Créer la table :
sqlCREATE TABLE ways ( id SERIAL PRIMARY KEY, source INTEGER, target INTEGER, cost DOUBLE PRECISION, reverse_cost DOUBLE PRECISION, geom GEOMETRY(LineString, 4326) );
1
2
3
4
5
6
7
8Insérer des données d'exemple :
sqlINSERT INTO ways (source, target, cost, reverse_cost, geom) VALUES (1, 2, 1.0, 1.0, ST_GeomFromText('LINESTRING(116.4074 39.9042, 116.4084 39.9052)', 4326)), (2, 3, 1.0, 1.0, ST_GeomFromText('LINESTRING(116.4084 39.9052, 116.4094 39.9062)', 4326)), (3, 4, 1.0, 1.0, ST_GeomFromText('LINESTRING(116.4094 39.9062, 116.4104 39.9072)', 4326));
1
2
3
4
Création de la topologie
Avant de réaliser une analyse de routage, vous devez créer une topologie pour les données du réseau routier.
- Créer la topologie :sql
SELECT pgr_createTopology('ways', 0.00001, 'geom', 'id');
1
Utilisation de pgRouting pour l'analyse des routes
Voici quelques exemples d'analyse de routage couramment utilisés.
Plus court chemin
- Rechercher le plus court chemin :sql
SELECT * FROM pgr_dijkstra( 'SELECT id, source, target, cost FROM ways', 1, 4, directed := true );
1
2
3
4
Problème du voyageur de commerce
- Résoudre le problème du voyageur de commerce :sql
SELECT * FROM pgr_tsp( 'SELECT id, x::float8 AS x, y::float8 AS y FROM ways_vertices_pgr', start_id := 1 );
1
2
3
4
Analyse des zones de service
- Analyse des zones de service :sql
SELECT * FROM pgr_drivingDistance( 'SELECT id, source, target, cost FROM ways', 1, 2, directed := true );
1
2
3
4
Visualiser les résultats de routage
Vous pouvez utiliser divers outils SIG (comme QGIS) ou services de carte web (comme Leaflet, OpenLayers) pour visualiser les résultats de pgRouting
.
Utilisation de QGIS
Connectez-vous à la base de données PostgreSQL :
- Ouvrez QGIS
- Sélectionnez "Gestionnaire de sources de données" -> "PostGIS"
- Entrez les informations de connexion à la base de données et connectez-vous
Charger les données du réseau routier :
- Sélectionnez la table ou vue à charger
- Cliquez sur "Ajouter"
Utilisation de Leaflet
- Créer une carte web :html
<!DOCTYPE html> <html> <head> <title>Exemple Leaflet pgRouting</title> <link rel="stylesheet" href="https://unpkg.com/leaflet/dist/leaflet.css" /> <script src="https://unpkg.com/leaflet/dist/leaflet.js"></script> </head> <body> <div id="map" style="width: 600px; height: 400px;"></div> <script> var map = L.map('map').setView([39.9042, 116.4074], 13); L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { attribution: '© OpenStreetMap contributors' }).addTo(map); // Ajouter une polyligne à partir des données pgRouting var polyline = L.polyline([ [39.9042, 116.4074], [39.9052, 116.4084], [39.9062, 116.4094], [39.9072, 116.4104] ]).addTo(map); </script> </body> </html>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Conclusion
pgRouting
est un module d'extension de routage puissant qui permet une analyse de routage efficace dans PostgreSQL via une configuration et une utilisation simples. ServBay inclut déjà le module d'extension pgRouting
, vous n'avez qu'à suivre les étapes décrites dans cet article pour l'installer et le configurer. Grâce à divers algorithmes de routage et fonctionnalités d'analyse, vous pouvez exploiter au mieux les données de votre réseau routier pour offrir un support fiable à vos applications. <|vq_7495|>