Message posté par : Lucie Bertrand
----------------------------------------
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..
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=367794#p367794
Pour y répondre : qgis_fr(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net