Pages: 1
- Sujet précédent - QGIS: Joindre extremites de lignes a une couche de points - Sujet suivant
#1 Wed 29 May 2024 11:30
- EPODE_L_B
- Participant occasionnel
- Lieu: Chambéry
- Date d'inscription: 22 Mar 2023
- Messages: 40
QGIS: Joindre extremites de lignes a une couche de points
Bonjour,
Je pêche sur mon problème même si je pense que je ne suis pas loin de la solution...
J'ai dans mon projet Qgis une couche de lignes (réseaux), et une couche de 192 points (regards), les deux couches ne se superposent pas. Je cherche à faire en sorte que les extrémités des lignes se trouvant à proximité de mes points les rejoignent (voir sur image en pj: à gauche), cela en créant ainsi un nouveau sommet + segment pour atteindre le point.
J'ai déjà essayé l'outil 'accrocher les géométries à la couche' en testant tous les types de comportements mais ça ne donne pas le bon résultat.
(voir sur image en pj: à droite)
J'ai mis une capture d'écran pour éclairage !
Merci d'avance pour votre aide !
Hors ligne
#2 Wed 29 May 2024 11:35
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1670
Re: QGIS: Joindre extremites de lignes a une couche de points
Bonjour,
Pas de capture à l'horizon
Hors ligne
#3 Wed 29 May 2024 11:44
- EPODE_L_B
- Participant occasionnel
- Lieu: Chambéry
- Date d'inscription: 22 Mar 2023
- Messages: 40
Re: QGIS: Joindre extremites de lignes a une couche de points
bizarre pourtant j'ai bien intégré la pièce jointe depuis le bouton parcourir....
Et maintenant ?
Hors ligne
#4 Wed 29 May 2024 19:54
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1670
Re: QGIS: Joindre extremites de lignes a une couche de points
Vous voulez que vos lignes rejoignent les points les plus proches?
Hors ligne
#5 Fri 31 May 2024 09:29
- EPODE_L_B
- Participant occasionnel
- Lieu: Chambéry
- Date d'inscription: 22 Mar 2023
- Messages: 40
Re: QGIS: Joindre extremites de lignes a une couche de points
Oui c'était ça ! Je voulais joindre les extrémités des lignes au point le plus proche.
Finalement j'ai obtenu une solution en bricolant avec l'outil "Géométrie par expression dans Qgis", je déroule la méthode peut être qu'elle sera utile à d'autres.
Couches de départ:
- Couche de lignes "RESEAU"
- Couche de points "REGARDS"
1. Vérifier qu'il y ai bien une colonne ID unique dans la couche de lignes
2. Extraction des points d'arrivée et de fin de ma couche de lignes (start_point et end_point) = 2 couches distinctes (START et END)
3. Outil "Joindre les attributs par le plus proche" entre la couche START et la couche REGARDS, puis la couche END avec la couche REGARDS
On obtient deux nouvelles couches avec les attributs :
- feature_x/feature_yet : les coordonnées des points START ou END
- nearest_x/ nearest_y : les coordonnées des points REGARDS
4.Si besoin, nettoyer ces couches en ne conservant que les points START ou END situés dans un rayon proche des points REGARDS (outils sélection dans un rayon puis inverser la sélection et supprimer les entités non souhaitées)
5. Depuis les propriétés de la couche RESEAU, faire deux jointures sur l'ID pour les couches START et END (en ajoutant un préfixe aux champs joints : featurex/y et nearest x/y)
6. A partir de la couche RESEAU, utiliser l'outil "Geometrie par expression" avec un make_line pour rejoindre les points START_nearest_x/y et START_feature_x/y , idem pour les données END
7. On obtient une nouvelle couche de lignes que l'on peut intégrer à la couche RESEAU.
Un script python aurait sans doute été plus efficace malheureusement je ne maîtrise pas ce langage..
Hors ligne
#6 Fri 31 May 2024 16:43
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3940
Re: QGIS: Joindre extremites de lignes a une couche de points
Bonjour,
Un script python aurait sans doute été plus efficace malheureusement je ne maîtrise pas ce langage..
A défaut de Python, vous pouvez essayer de créer un modèle.
Autrement, ceci devrait faire le job à partir du sommet final, dans l'algo "Géométrie par expression". Évidemment elle peut être étendue avec le sommet de départ et son proche point; je vous laisse chercher, si le cœur vous en dit.
Code:
with_variable( 'mesregards', aggregate('regards', 'collect', @geometry), -- on agrège tous les points regards dans une seule entité à manipuler union(@geometry, -- la ligne de réseau existante que l'on étend make_line( -- avec une ligne end_point(@geometry), -- qui part du sommet final closest_point( @mesregards, end_point(@geometry)) -- vers son plus proche regard ) ) )
Hors ligne
#7 Fri 31 May 2024 17:32
- EPODE_L_B
- Participant occasionnel
- Lieu: Chambéry
- Date d'inscription: 22 Mar 2023
- Messages: 40
Re: QGIS: Joindre extremites de lignes a une couche de points
Merci beaucoup ! J'essayerai à l'occasion, ça me semble plus efficace en effet !
Hors ligne
Pages: 1
- Sujet précédent - QGIS: Joindre extremites de lignes a une couche de points - Sujet suivant