Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Suite à un problème sur notre serveur une intervention a été planifiée ce  matin. La coupure, qui ne devait pas exéder 5 mn, a duré plus longtemps que prévu. L'intervention consistait à l'augmentation de l'espace disque (GeoRezo prend un peu plus de place en viellissant). Malheureusement, le serveur se faisant vieux, quelques soucis ont eu lieu.

Nous avons procédé à un gros nettoyage d'automne : augmentation de l'espace disque, mise à jour des certificats SSL pour l'utilisation des  urls en https, upgrade d'Apache et autres outils nécessaire au bon fonctionnement.

Notre volonté à long terme est de consolider la plateforme GeoRezo et nous accueillons toutes personnes intéressées pour nous aider (technologies utilisées : drupal, docker, MySQL, git, etc.) Si vous désirez contribuer à un projet dynamique et apprendre de nouvelles choses, contactez nous !

L'équipe GeoRezo

#1 ven. 30 septembre 2016 11:38

gmenguy
Membre
Lieu: Epinal
Date d'inscription: 24 avril 2006
Messages: 53

[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 (ven. 30 septembre 2016 11:39)

Hors ligne

 

#2 jeu. 01 juin 2017 22:20

dc33
Membre
Date d'inscription: 1 juin 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 ven. 02 juin 2017 10:02

Nicolas Ribot
Moderateur
Lieu: Toulouse
Date d'inscription: 9 sept. 2005
Messages: 1015

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 ven. 02 juin 2017 10:59

dc33
Membre
Date d'inscription: 1 juin 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

 

Pied de page des forums

Powered by FluxBB

Partagez  |