Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Le GeoRezo vous souhaite une bonne année 2020 !

voeux2020

#1 Wed 15 January 2020 11:19

Laurent75019
Membre
Lieu: La Réunion_974
Date d'inscription: 15 Jul 2011
Messages: 73

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


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#2 Wed 15 January 2020 14:38

Hydrolithe
Membre
Lieu: Lyon
Date d'inscription: 21 Apr 2010
Messages: 170

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
Membre
Lieu: La Réunion_974
Date d'inscription: 15 Jul 2011
Messages: 73

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
Membre
Lieu: La Réunion_974
Date d'inscription: 15 Jul 2011
Messages: 73

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
Membre
Lieu: La Réunion_974
Date d'inscription: 15 Jul 2011
Messages: 73

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

 

Pied de page des forums

Powered by FluxBB

Partagez  |