#1 Wed 15 January 2020 11:19
- Laurent75019
- Participant actif
- Lieu: La Réunion_974
- Date d'inscription: 15 Jul 2011
- Messages: 96
QGIS 3.4: calcul distance points a ligne
Bonjour,
j'ai une couche vecteur point.shp avec un champ unique idd
j'ai une couche vecteur ligne.shp (avec une seule entité dans la table), propriété Line (MultiLineString), avec un champ unique ID
Les deux couches sont projetées.
Je souhaite calculer la distance de chaque point à la ligne c'est à dire la distance perpendiculaire partant du point vers la ligne (comme l'indique l'image jointe basée sur un exemple, à droite mon état de départ, à gauche la distance calculée). Je souhaite que cette distance soit retournée dans la table point.shp
J'ai essayé en vain différents outils (dont v.distance) et extensions (dont NNjoin), mais cela ne renvoie pas le résultat que j'attends. J'essaie cette formule :
line_locate_point ($geometry, geometry(get_feature('macoucheligne','unchamp','lavaleurcorrespondante')))
Sur ma couche point, dans la calculatrice de champ, je copie cette formule avec :
macoucheligne = sélection de la couche ligne, ce qui donne l'ID de la couche 'line_dde2b511_fa0a_458f_bb6f_3f56c11e6f48'
unchamp = le champ à remplir que j'ai créé, ici "dist_m" champ de la couche point
lavaleurcorrespondante = "idd" champ de la couche point
line_locate_point ($geometry, geometry(get_feature('line_dde2b511_fa0a_458f_bb6f_3f56c11e6f48',"dist_m","idd")))
Je doute que cette formule soit bien remplie voir que ce soit la bonne formule, qu'en pensez vous ?
Merci
Hors ligne
#2 Wed 15 January 2020 14:38
- Hydrolithe
- Participant assidu
- Lieu: Lyon
- Date d'inscription: 21 Apr 2010
- Messages: 223
Re: QGIS 3.4: calcul distance points a ligne
Bonjour,
As-tu essayé avec la fonction shortest_line, j'ai testé et ça fonctionne chez moi avec une expression du style :
round(length(shortest_line($geometry,geometry(get_Feature('macoucheligne','id','1')))),1)
On peut appliquer cette expression dans les étiquettes et dans le style via le générateur de géométrie mais aussi via la calculatrice de champs comme tu le souhaites.
Pierre
Hors ligne
#3 Wed 15 January 2020 16:50
- Laurent75019
- Participant actif
- Lieu: La Réunion_974
- Date d'inscription: 15 Jul 2011
- Messages: 96
Re: QGIS 3.4: calcul distance points a ligne
Je souhaite savoir si la fonction line_locate_point est appropriée ? si oui est elle bien renseignée ?
J'ai essayé cette fonction : round(length(shortest_line($geometry,geometry(get_Feature('macoucheligne','id','1')))),1)
le résultat me retourne également NULL comme pour la première !
Hors ligne
#4 Wed 15 January 2020 16:51
- Laurent75019
- Participant actif
- Lieu: La Réunion_974
- Date d'inscription: 15 Jul 2011
- Messages: 96
Re: QGIS 3.4: calcul distance points a ligne
Je souhaite savoir si la fonction line_locate_point est appropriée ? si oui est elle bien renseignée ?
J'ai essayé cette fonction : round(length(shortest_line($geometry,geometry(get_Feature('macoucheligne','id','1')))),1)
le résultat me retourne également NULL comme pour la première !
Hors ligne
#5 Wed 15 January 2020 18:18
- Laurent75019
- Participant actif
- Lieu: La Réunion_974
- Date d'inscription: 15 Jul 2011
- Messages: 96
Re: QGIS 3.4: calcul distance points a ligne
A force de persévérance !
Le plughin NNjoin fonctionne bien pour calculer la distance des points à la ligne.
L'erreur venait, dans mon cas, du fait que, dans la couche point, une colonne (distance) générée à la suite de la fonction "extraire des sommets spécifiques" créait un conflit avec la colonne distance que NNjoin cré.
Résolu.
Dernière modification par Laurent75019 (Wed 15 January 2020 18:41)
Hors ligne