#1 Tue 27 July 2021 15:30
- S_imon
- Participant occasionnel
- Date d'inscription: 10 Feb 2017
- Messages: 33
QGIS 3.16.7: Distance entre 2 points selon une polyligne
Bonjour
Je viens vers vous afin de trouver conseil. En effet je cherche à déterminer les distances à la source pour les stations dont je dispose sur la Saône.
Je dispose de ma couche Ligne "linéaire Saône" ( extraite de la BD Topage), de mes localisations de stations que j'ai toutes reliées à mon linéaire via Closest point ( couche" stations_pêche"), de la localisation de la source.
Après plusieurs essais je n'arrive pas à calculer/ obtenir la distance à la source pour chaque, notamment avec l'outil matrice de distance, les distances affichées étant toutes calculées " à vol d'oiseau".
Est-ce que quelqu'un aurait la solution à mon problème ?
Je travaille sous Qgis 3.16.7 - Je vous remercie
Hors ligne
#2 Tue 27 July 2021 17:15
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3947
Re: QGIS 3.16.7: Distance entre 2 points selon une polyligne
Bonjour,
Je dispose de ma couche Ligne "linéaire Saône" ( extraite de la BD Topage), de mes localisations de stations que j'ai toutes reliées à mon linéaire via Closest point ( couche" stations_pêche"), de la localisation de la source.
Si je puis me permettre, ne préjugez pas de ce que les forumeurs connaissent forcément les plugins que vous utilisez et pensez à décrire ce qu'ils vous sortent comme résultat. De ce que je vois, "Closest Points" projette la station sur le linéaire et pour chaque point projeté, il indique dans la table attributaire, l'id de la station (from_fid) et l'id du linéaire (to_fid). A partir de là, on peut essayer (sur la couche closest_points générée):
Code:
line_locate_point( -- fonction qui calcule le long d'un linéaire, depuis le début geometry(get_feature_by_id( 'lineaire_saone', -- lequel linéaire est dans la couche lineaire_saone attribute($currentfeature,'to_fid') )),-- avec pour $id celui référencé par l'entité closest_points actuelle dans son champ "to_fid" ,$geometry) -- et on s'arrête à l'entité en question
A priori, cela devrait marcher; la logique me semble bonne mais un test chez moi renvoie des valeurs aberrantes mais j'ai un projet brouillon avec un cafouillis de SCR...
Hors ligne
#3 Thu 29 July 2021 16:32
- S_imon
- Participant occasionnel
- Date d'inscription: 10 Feb 2017
- Messages: 33
Re: QGIS 3.16.7: Distance entre 2 points selon une polyligne
Bonjour,
Tout d'abord, merci beaucoup d'avoir répondu aussi rapidement à ma question.
En effet et je m'en excuse, j'aurais dû préciser la sortie de la fonction "Closest Points".
Concernant la réponse que vous m'avez apporté, il se pose un problème : le champ "to_find" de la couche Closest_points n'est composé que de valeurs nulles. Après avoir essayé le script avec le champ " id", il se fait que j'obtiens une seule valeur de distance mais correcte.
J'avoue ne pas trop comprendre ce qu'il se passe,
Je vous remercie par avance du temps passé à essayer de m'éclaircir
Hors ligne
#4 Fri 30 July 2021 07:14
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3947
Re: QGIS 3.16.7: Distance entre 2 points selon une polyligne
Bonjour,
En effet et je m'en excuse, j'aurais dû préciser la sortie de la fonction "Closest Points".
C'est pas grave. C'est juste que ça fait gagner du temps aux gens et surtout précise, explique un peu plus vos données et votre contexte donc augmente le nombre potentiel de répondants.
Pour ce qui est des résultats de "Closest points", difficile à dire. Réessayez et vérifiez que vous utilisez les bonnes couches, le bon algorithme, les projections... Quitte à recréer un petit jeu de données et tester. Je ne sais pas ce qui peut clocher
Hors ligne