Pages: 1
- Sujet précédent - QGIS: déplacer des points sur les lignes routiers les plus proches - Sujet suivant
#1 Thu 08 June 2017 14:47
- Abdoulayi
- Participant occasionnel
- Date d'inscription: 5 Jan 2017
- Messages: 10
QGIS: déplacer des points sur les lignes routiers les plus proches
Bonjour Chers géomaticiens,
J'ai un problÚme qui me bloque depuis quelques jours et auquel j'ai pas trouvé de solution dans les différents forums.
Je cherche à déplacer des points sur les lignes les plus proches.
Je m'explique. d'un cĂŽtĂ©, j'ai des milliers de points gĂ©orĂ©fĂ©rencĂ©s concernant Ă des points d'enquĂȘtes. Et de l'autre, le rĂ©seau routier de France (polylignes).
Mes points d'enquĂȘtes devraient ĂȘtre superposĂ©s sur le rĂ©seau routier national puisque les enquĂȘtes sont en lien avec les routes. Malheureusement, ce n'est pas le cas pour la majoritĂ© de mes points. Je cherche donc une solution pour dĂ©placer automatiquement mes points afin qu'ils Ă©pousent la position de la ligne du rĂ©seau routier la plus proche.
J'utilise QGIS 2.16 et je suis Ă©galement preneur si la solution devrait ĂȘtre en SQL, car j'utilise la base de donnĂ©es PostgreSQL.
Je vous remercie pour l'ensemble des points que vous auriez Ă me proposer.
Hors ligne
#2 Fri 09 June 2017 09:08
- Xavier Julian
- Participant assidu
- Lieu: Orange
- Date d'inscription: 19 Jan 2015
- Messages: 218
Re: QGIS: déplacer des points sur les lignes routiers les plus proches
Bonjour Abdoulayi !
Dans le sujet récent ci-dessous, il y a plusieurs pistes proposées pour lier des points à des lignes :
https://georezo.net/forum/viewtopic.php … 76#p295376
++
Xavier.
Hors ligne
#3 Fri 09 June 2017 11:12
- JD
- Membre
- Date d'inscription: 8 Aug 2013
- Messages: 726
Re: QGIS: déplacer des points sur les lignes routiers les plus proches
Bonjour,
on peut surement l'optimisé mais quelque chose comme ca doit fonctionner sous postgresql:
La premiĂšre sous-requĂȘte recherche les routes Ă moins de 300m du point et calcule leur distance
La seconde attribue pour chaque point un classement des routes selon la distance
Enfin le dernier select construit la plus courte ligne entre le point et la route,
puis prend le dernier point (pour qu'il soit sur la route), et tout ceci pour la route la plus proche du point (rank =1) :
Code:
with s as (
select
b.id as id_point,
r.id as id_route,
st_distance(b.geom,r.geom) as distance,
r.geom as geom_route,
b.geom as geom_point
from
route as r,
point AS b
--supposition que les points se trouvent Ă moins de 300m de la route
where st_dwithin(b.geom, r.geom, 300)
),
req as (
select *, rank() OVER (partition by id_point ORDER BY distance) as rank from s
ORDER BY id_point)
select
id_point,
id_route,
distance,
st_endpoint(st_shortestline(geom_point, geom_route)) as geom
from req
where rank = 1Dernière modification par lejedi76 (Fri 09 June 2017 11:19)
Hors ligne
#4 Fri 09 June 2017 17:35
- Abdoulayi
- Participant occasionnel
- Date d'inscription: 5 Jan 2017
- Messages: 10
Re: QGIS: déplacer des points sur les lignes routiers les plus proches
Merci beaucoup Xavier pour les pistes proposées. Elles m'ont permis d'y voir plus clair. TrÚs content de savoir que tu continues toujours à nous éclairer ici :-).
Merci Ă "nouveau" Ă Lejedi76 pour la requĂȘte. J'ai eu le temps de le tester et il correspond bien Ă ce que je voulais dans un premier temps.
Je vais devoir juste y apporter quelques modifications supplĂ©mentaires, car ma requĂȘte doit faire attention Ă certaines relations de proximitĂ©s.
En effet, la route la plus proche n'est pas dans certains cas le lieu oĂč a lieu l'enquĂȘte. Je le sais, car ma table enquĂȘte contient souvent l'identifiant de la route rattachĂ©e.
Mais je pense que cela ne devrait pas me poser beaucoup de difficulté puisque les deux tables ont cette information en commun.
C'est-Ă -dire qu'en plus de la route la plus proche et je vais ajouter "simplement" la contrainte d'avoir les mĂȘmes identifiants de la route pour trouver la position de la route la plus proche.
Ainsi dans certaines situations, ça serait par exemple sur la deuxiĂšme ou sur la troisiĂšme route qu'il faudrait position mes enquĂȘtes.
Bien sĂ»r je vais maintenir l'histoire de distance, ainsi faut pas que la requĂȘte dĂ©borde d'imagination.
Hors ligne
Pages: 1
- Sujet précédent - QGIS: déplacer des points sur les lignes routiers les plus proches - Sujet suivant

