IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SIG : Système d'information Géographique Discussion :

[9.3] distance entre deux points par une polyligne


Sujet :

SIG : Système d'information Géographique

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2014
    Messages : 28
    Points : 11
    Points
    11
    Par défaut [9.3] distance entre deux points par une polyligne
    Bonsoir à tous,

    Je vous expose mon problème :

    J'ai 3 couches :

    - une couche des cours d'eau, en géométrie polyligne. Il s'agit donc d'une arborescence de polyligne. Chaque branche de l'arbre représentant un tronçon hydrographique et donc une ligne sur la table attributaire de la couche.
    - une couche des intersections de ces cours d'eau, en géométrie point. Chaque intersection des branches est un point et donc une ligne sur la table attributaire de cette couche.
    - une couche de points parsemés sur les cours d'eau, en géométrie point. Les points sont placés sans logique particulière sur les tronçons hydrographiques.

    Je voudrais, pour chaque point de la troisième couche, évaluer la distance qui le sépare de l'intersection des cours d'eau située juste en aval, c'est-à-dire des points de la deuxième couche.
    Cela me permettra de sélectionner celui qui est le plus loin et d'effacer tous les autres, tronçons hydrographiques par tronçons hydrographiques.
    Je veux bien sûr connaitre la distance entre ces points en passant par la polyligne du tronçon hydrographique et non par la distance la plus proche entre les deux.

    Existe-t-il des requêtes ou des fonctions particulières sur postgresql permettant de calculer la distance entre deux points en passant par une polyligne, puis de résoudre mon problème ?

    Je vous remercie de vos futures réponses.

    A bientôt.

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 016
    Points : 23 705
    Points
    23 705
    Par défaut
    Bonjour,

    Je ne l'ai jamais testé, mais PgRouting semble indiqué pour faire ça.
    Voici 2 liens sur le sujet :
    http://anitagraser.com/2011/02/07/a-...-to-pgrouting/
    http://workshop.pgrouting.org/index.html
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  3. #3
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 016
    Points : 23 705
    Points
    23 705
    Par défaut
    Autre piste, PostGIS Topology.
    Pareil, je n'ai pas essayé mais ça a l'air tout indiqué (notamment par la gestion des noeuds de réseau).
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2014
    Messages : 28
    Points : 11
    Points
    11
    Par défaut
    Bonjour à tous !


    Déjà, merci pour vos réponses, ced.
    J'ai finalement réussi à résoudre le problème.


    Le script suivant (entre autres scripts et fonctions) a été décisif dans la résolution de mon problème :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    WITH geoms AS(
    Select gid_1, idf, fid_combin, code_zone2, geom, geom_2 as point1, geom_3 as point2
    from v603_int)
    SELECT row_number()OVER()::integer AS gid, gid_1, idf, fid_combin, code_zone2, geom, point1, point2,
    ST_Length(ST_Line_Substring(geom, ST_Line_Locate_Point(geom, point1), ST_Line_Locate_Point(geom, point2))) as distance
    FROM geoms;
    J'avais préalablement joint dans une même table mes 3 couches (polyligne, point, point) afin d'avoir les 3 géométries sur la même table.


    Ensuite, l'avant-dernière ligne de ce script est la plus importante. Par ST_Line_Substring, je crée une polyligne entre mes 2 points en passant par la polyligne du cours d'eau. Par ST_Length, je calcule la longueur de chacune des polylignes.

    Merci encore et à bientôt.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Arcgis 10.1 distance entre deux points par une polyligne
    Par Gronimo dans le forum SIG : Système d'information Géographique
    Réponses: 0
    Dernier message: 02/06/2014, 19h25
  2. Calcul de distance entre deux points sur une carte ( openlayers)
    Par Atika90 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/08/2013, 16h27
  3. [Base de données Spatial] Distance entre deux points
    Par Pumpkins dans le forum Requêtes
    Réponses: 2
    Dernier message: 10/11/2006, 12h18
  4. Calcul de distance entre deux points en WGS84
    Par marieR dans le forum Langage
    Réponses: 5
    Dernier message: 03/08/2006, 17h07
  5. Mesure distance entre 2 points d'une image
    Par vexal dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/05/2005, 14h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo