#1 Thu 19 April 2018 22:59
- Julien Gondellon
- Participant actif
- Date d'inscription: 17 Apr 2014
- Messages: 67
QGIS 2.18: localisation de points le long d'une ligne
Bonsoir à tous,
Je cherche à automatiser la création de points le long de polyligne sur QGIS.
J'ai une couche shapefile de polyligne (réseau routier) et j'ai un CSV (ouvrage spécifique) dans lequel sont consignés :
- le point de départ kilométrique,
- le type d'ouvrage,
- la distance totale ou cumulée à partir du point de départ kilométrique.
Je cherche désespérément une application sur QGIS qui me permette de créer, à partir du CSV, une couche de points accrochés à la polyligne et réparti selin la distance depuis le point kilométrique de départ.
J'ai essayé QChainage mais malheureusement il crée des points réguliers et non variable an fonction d'une données présente dans un csv.
Merci de vos réponses.
A l'aide
Hors ligne
#2 Fri 20 April 2018 08:20
- Pierre
- DesCartesPourUnMondeMeilleur
- Date d'inscription: 22 Sep 2005
- Messages: 1643
Re: QGIS 2.18: localisation de points le long d'une ligne
Aloha,
Il va vous falloir passer par les fonctions de bdd postgis pour la réalisation.
http://postgis.net/docs/manual-2.1/refe … eferencing
Cordialement
art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.
Hors ligne
#3 Fri 20 April 2018 09:47
- Julien Gondellon
- Participant actif
- Date d'inscription: 17 Apr 2014
- Messages: 67
Re: QGIS 2.18: localisation de points le long d'une ligne
Merci à Pierre pour la rapidité de la première réponse.
D'après ce que je vois, il faut que j'utilise l'une de ces options :
ST_LineInterpolatePoint — Returns a point interpolated along a line. Second argument is a float8 between 0 and 1 representing fraction of total length of linestring the point has to be located.
ST_LineLocatePoint — Returns a float between 0 and 1 representing the location of the closest point on LineString to the given Point, as a fraction of total 2d line length.
ST_LineSubstring — Return a linestring being a substring of the input one starting and ending at the given fractions of total 2d length. Second and third arguments are float8 values between 0 and 1.
ST_LocateAlong — Return a derived geometry collection value with elements that match the specified measure. Polygonal elements are not supported.
ST_LocateBetween — Return a derived geometry collection value with elements that match the specified range of measures inclusively. Polygonal elements are not supported.
ST_LocateBetweenElevations — Return a derived geometry (collection) value with elements that intersect the specified range of elevations inclusively. Only 3D, 4D LINESTRINGS and MULTILINESTRINGS are supported.
ST_InterpolatePoint — Return the value of the measure dimension of a geometry at the point closed to the provided point.
ST_AddMeasure — Return a derived geometry with measure elements linearly interpolated between the start and end points. If the geometry has no measure dimension, one is added. If the geometry has a measure dimension, it is over-written with new values. Only LINESTRINGS and MULTILINESTRINGS are supported.
Mon anglais étant mauvais et ma pratique de Postgis quasiment nulle, existe-t-il des tuto sur lesquels je peux m'appuyer ou une autre méthode sans passer par postgis
Merci
Hors ligne
#4 Fri 20 April 2018 15:08
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3945
Re: QGIS 2.18: localisation de points le long d'une ligne
Bonjour,
Ce sont les seules infos dans le CSV? Y a-t-il une info pour identifier de manière unique la voie sur laquelle le point serait placé? Je veux dire, lorsque deux routes ont un même pk d'origine, comment savoir sur laquelle l'ouvrage devrait être? Ou ce que vous appelez point de départ est tout autre?
En supposant que l'info sur la voie est connue (et je pense que c'est peut-être cette connexion et la table attributaire résultat qui sont le plus complexe), je pense que sous QGIS 3, c'est jouable. Avec de l'huile de coude en expression certes, mais ça doit être jouable en combinant:
- la symbologie "générateur de géométrie" avec la fonction line_interpolate_point pour placer les points comme symboles et s'assurer qu'on a la bonne formule.
- l'algorithme de QGIS 3 "geometry by expression" pour convertir cette formule en réelles entités points.
Ca me tente bien comme casse-tête du week-end pourvu que j'ai un extrait de la data (genre trois voies avec les données du csv qui leur sont liées).
Dernière modification par SANTANNA (Fri 20 April 2018 15:10)
Hors ligne
#5 Fri 20 April 2018 15:32
- Julien Gondellon
- Participant actif
- Date d'inscription: 17 Apr 2014
- Messages: 67
Re: QGIS 2.18: localisation de points le long d'une ligne
Salut Santanna,
Merci pour cette belle implication, si tu y arrives sous QGIS 3, je te paye une bouteille .
Je t'ai fais un exemple de fichier excel sur lequel je pourrai potentielle m'appuyer.
Sur le fichier excel tu trouveras les objets à afficher (sous la forme de point) sur le tronçon routier.
Attention, il se peut que le tronçon routier ne fasses pas tout à fait le bon linéaire sur le plan. Il faut donc, à mon avis raisonner en pourcentage et non en linéaire. Je ne sais pas ce que tu en penses.
Et en effet, d'une même borne kilométrique, je peux avoir deux départs.
Merci de ton retour.
A+
Hors ligne
#6 Fri 20 April 2018 15:37
- Julien Gondellon
- Participant actif
- Date d'inscription: 17 Apr 2014
- Messages: 67
Re: QGIS 2.18: localisation de points le long d'une ligne
J'ai oublié la pièce jointe.
A+
Hors ligne
#7 Fri 20 April 2018 16:02
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3945
Re: QGIS 2.18: localisation de points le long d'une ligne
Au risque de passer pour débile, je ne comprends pas du tout la table attributaire. Pour quelqu'un qui n'est pas du domaine, serait-il possible d'expliquer comme elle est organisée et à quoi correspondent les champs (des métadonnées, des métadonnées!!!). Je ne vois en outre aucune information portant sur les liens avec le réseau routier. si?
Attention, il se peut que le tronçon routier ne fasses pas tout à fait le bon linéaire sur le plan. Il faut donc, à mon avis raisonner en pourcentage et non en linéaire. Je ne sais pas ce que tu en penses.
Faisons déjà le linéaire et après on verra pour "pourcentager" (qui est peut-être plus ardu). Cela dit, je ne suis pas du domaine donc me garderais de donner un avis là-dessus.
Hors ligne
#8 Fri 20 April 2018 16:26
- Julien Gondellon
- Participant actif
- Date d'inscription: 17 Apr 2014
- Messages: 67
Re: QGIS 2.18: localisation de points le long d'une ligne
Aucune question de débile, c'est juste moi qui présente des fois trop vite les choses.
Il s'agit à la base d'un fichier excel de relevé de terrain que je converti habituellement en csv.
Le réseau routier est cartographié à la main. J'ai placé des bornes à chaque polyligne de mon réseau routier.
Donc dans le fichier excel :
ID : C'est le nom de mes polylignes de routes,
Borne kilométrique de départ : c'est l'id de mon point de départ de mon bout de route,
Borne kilométruique d'arrêt : c'est l'autre extrémité de ma polyligne
Distance : c'est la distance cumulée en partant de ma borne de départ,
Objet : ce que je note et que je trouve à chaque distance.
Est ce que cela est plus clair ?
Mais ma base est pas bonne en fait. Donc la voici en pièce jointe avec les bons id.
Merci.
Hors ligne
#9 Fri 20 April 2018 16:29
- Julien Gondellon
- Participant actif
- Date d'inscription: 17 Apr 2014
- Messages: 67
Re: QGIS 2.18: localisation de points le long d'une ligne
Décidément.
Hors ligne
#10 Fri 20 April 2018 16:55
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3945
Re: QGIS 2.18: localisation de points le long d'une ligne
Décidément.
Toujours pas
Si je comprends les explications (merci en passant), en réalité, le champ ID ne devrait pas changer à toutes les lignes comme c'est le cas, là (ID 1 à 6 deviennent ID=1). En gros, lorsque bornes départ et arrêt sont identiques 'dune ligne à l'autre, je suis toujours sur la même voie. Ai-je bon?
Hors ligne
#11 Fri 20 April 2018 16:59
- Julien Gondellon
- Participant actif
- Date d'inscription: 17 Apr 2014
- Messages: 67
Re: QGIS 2.18: localisation de points le long d'une ligne
Santanna,
T'embêtes pas, je vais essayer de faire une présentation graphique dans le we avec un vrai shape cette fois-ci.
A plus
Hors ligne