banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#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

 

Pied de page des forums

Powered by FluxBB