#1 Fri 30 September 2016 11:38
- gmenguy
- Participant actif
- Lieu: Epinal
- Date d'inscription: 24 Apr 2006
- Messages: 54
[PG ROUTING] fonction isodistance
Bonjour,
Je test actuellement pg-routing et notamment la fonction de construction d'isodistance (pgr_drivingdistance) qui fonctionne bien mais qui présente un manque certain pour nous : le découpage d'un tronçon précis en fonction du paramètre distance
TUTO :
Je viens d'exécuter avec succès les tutoriaux suivants
https://diouck.wordpress.com/postgispgrouting/
puis
https://diouck.wordpress.com/2016/09/21 … sochrones/
THEMATIQUE
Notre thématique de travail concerne les points d'eau incendie utilisés par les pompiers sur le terrain. Pour faire simple, les tuyaux font 200 ou 400m de long. Il devient donc intéressant de faire un calcul d'isodistance (par la route) par rapport à la localisation de chaque point d'eau incendie et la longueur de tuyau choisi. Cela va permettre de connaître la couverture incendie d'un point d'eau.
EXPLICATION
La fonction drivingdistance de pg routing sélectionne les noeuds ou les tronçons sont totalement inclus dans la distance donnée en paramètre.
exemple : Si le tronçon du graphe fait 402m et que la paramètre isodistance est à 0.4 (400m), ce tronçon ne sera pas sélectionné : c'est ce qui pose problème : il faudrait etablir une requête qui puisse découper précisément ce tronçon à 400m pile.
Voici ma requête pour une isodistance à 400m sur le point d'eau 365:
Code:
create table routing.drivingdistance_pt as SELECT id1 AS node_id , cost,geom FROM pgr_drivingdistance('SELECT edge_id as id, start_node as source, end_node as target, tps_distance as cost from routing.edge_data',365, [b]0.4[/b], false, false) as di JOIN routing.node pt ON di.id1 = pt.node_id;
Existe t'il un moyen avec les fonctions postgis couplée par exemple de faire ce découpage ?
Merci par avance de votre aide
Gwen
Dernière modification par gmenguy (Fri 30 September 2016 11:39)
Hors ligne
#2 Thu 01 June 2017 22:20
- dc33
- Juste Inscrit !
- Date d'inscription: 1 Jun 2017
- Messages: 2
Re: [PG ROUTING] fonction isodistance
Bonjour Gwen,
Nous avons exactement la même problèmatique avec les mêmes outils.
Avez-vous trouvé une solution pour répondre à vos besoins ?
Didier.
Hors ligne
#3 Fri 02 June 2017 10:02
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1554
Re: [PG ROUTING] fonction isodistance
Bonjour,
Oui, il est tres facile (et rapide) de découper des lignes sous postgis avec les fonctions de ref. lineaire:
http://postgis.net/docs/reference.html# … eferencing
Nicolas
Hors ligne
#4 Fri 02 June 2017 10:59
- dc33
- Juste Inscrit !
- Date d'inscription: 1 Jun 2017
- Messages: 2
Re: [PG ROUTING] fonction isodistance
Bonjour,
Oui, le decoupage, n'est pas un problème en soi. Mais selon ce que j'ai compris de pgrouting ( je ne pratique que depuis hier), La requête décrite dans le post de Gwen ne retourne que les noeuds entre 0 et 399 m, depuis un noeud existant du graphe. Hors, il peut rester un morceau de tronçon après un noeud se trouvant à 395m, il nous faut donc pouvoir identifier cette portion de tronçon afin de l'afficher.
Je pensais calculer un polygone qui servirait de buffer pour récupérer les tronçons concernés, mais la limite du buffer reste un noeud et on loupe donc la portion de tronçon aprés ce noeud pour aller jusqu'à 400m.
Une solution pourrait être de calculer la distance de l'origine au dernier noeud accessible se trouvant dans mon buffer, pour ensuite recupérer la portion restante en faisant une simple différence de distance ( 0.400 - distance(noeud origine, noeud cible). Mais cela me semble un peu tiré par les cheveux.
Et je ne parle même pas de mes ponctuels "hydrants" qui ne sont pas encore rattachés à mon graphe topologique....
Bref, je débute et j'ai encore du boulot...
Didier.
Hors ligne
#5 Sat 20 June 2020 09:07
- Alicemartin
- Participant occasionnel
- Date d'inscription: 30 Jun 2013
- Messages: 48
Re: [PG ROUTING] fonction isodistance
Bonjour,
Avez-vous trouvé une solution pour découper les tronçons en fonction du paramètre distance ?
Je vous remercie par avance pour votre retour,
Alice Martin
Hors ligne
#6 Mon 22 June 2020 11:52
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1554
Re: [PG ROUTING] fonction isodistance
Bonjour,
Vous auriez un exemple avec des données ?
Je ne suis pas sur de comprendre le problème.
Avec les fonctions de référencement linéaire, vous pouvez découper une linestring tous les x mètres sans trop de problèmes.
Nicolas
Hors ligne
#7 Mon 22 June 2020 22:44
- Alicemartin
- Participant occasionnel
- Date d'inscription: 30 Jun 2013
- Messages: 48
Re: [PG ROUTING] fonction isodistance
Bonjour,
Excusez-moi, en le relisant c'est sûr que mon message était clair comme de l'eau de boudin.
J'ai exactement le même soucis que gmenguy, qui a ouvert ce post. J'aimerais faire des calculs d'isodistance pour obtenir les portions du réseau routier qui sont exactement à 200 ou 400m de points d'eau incendie. Et tout comme dc33, je débute avec l'extension pgrouting et n'arrive pas à découper les tronçons du réseau routier comme je le souhaite. Je tiens à faire tout ça sur PostgreSQL afin d'automatiser un maximum les requêtes.
Je vais regarder de plus près les fonctions de référencement linéaire que je ne connaissais pas. A tout hasard, auriez-vous un exemple de requête couplant ces fonctions à celles de pgrouting ?
Hors ligne
#8 Tue 23 June 2020 10:39
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1554
Re: [PG ROUTING] fonction isodistance
Bonjour,
S'il s'agit de découper le réseau pour avoir des tronçons de longueur déterminée, il faut mieux faire le découpage avant d'appeler pgRouting il me semble.
Un exemple de découpage de lignes (multilinestrings meme) dans ce post:
https://georezo.net/forum/viewtopic.php?id=119913
Nicolas
Hors ligne
#9 Wed 24 June 2020 15:05
- Alicemartin
- Participant occasionnel
- Date d'inscription: 30 Jun 2013
- Messages: 48
Re: [PG ROUTING] fonction isodistance
Bonjour,
Ce n'est pas découper le réseau tous les X mètres qui m'intéresse, mais bien de découper le réseau à X mètres d'un point.
En gros l'idéal serait d'obtenir un résultat proche de cette méthode, mais avec des outils de PostGIS --> https://jbdesbas.wordpress.com/2018/01/ … -sur-qgis/
Hors ligne
#10 Wed 16 February 2022 22:11
- kmeo
- Juste Inscrit !
- Lieu: Moissac
- Date d'inscription: 20 Sep 2006
- Messages: 3
Re: [PG ROUTING] fonction isodistance
Bonjour,
avez-vous trouvé des solutions pour faire les isodistances 200m et 400m des PEI avec postgis depuis QGIS ?
Les liens vers les sites wordpress ne sont plus valables.
Simon.
Hors ligne