#1 Fri 25 January 2019 10:29
- preliator
- Participant assidu
- Date d'inscription: 17 Nov 2018
- Messages: 433
QGIS: Relier un point à une route
Bonjour à tous,
Je voudrais récupérer les communes qui sont éloignées au maximum de 800m d'un centre commercial, en suivant les routes. Je sais faire la manip' pour créer la distance de 800m sur les routes à partir des centres commerciaux, mais seulement lorsque le point se situe exactement sur la route. Si le point ne touche pas la route, le processus ne s'enclenche pas.
Ma question est donc : Comment relier les points, qui ne touchent pas directement la route, au bout de route qui lui est le plus proche.
Une fois que j'aurais réussis à obtenir la couche de distance de 800m qui part des centre commerciaux, par quel moyen pourrais-je récupérer les communes qui touchent cette couche ?
Merci à vous.
Dernière modification par preliator (Fri 25 January 2019 12:38)
Hors ligne
#2 Fri 25 January 2019 13:33
Re: QGIS: Relier un point à une route
Bonjour,
Sous QGIS :
Couche > Ajouter une couche virtuelle et taper :
Code:
select m.rowid as pid, lid, closestpoint(l.geometry,p.geometry) as geometry from ( select "p"."fid" pid, "l"."fid" lid, min(Distance("p"."geometry","l"."geometry")) as distance from "point" p, "ligne" l group by pid order by pid ) as m, ligne l, point p where m.pid=p.fid and m.lid=l.fid group by m.rowid;
Code adapté depuis https://gis.stackexchange.com/questions … ar-feature
Pour trouver le point le plus proche via d'autres outils, vous pouvez utiliser :
- st_closestpoint sous PostGIS
- ou v.net sous GRASS (http://www.ing.unitn.it/~grass/docs/tut … node1.html)
Puis par la suite, vous pouvez regarder du côté de l'outil "sélection par localisation"
geodata au cerema et petits billets en géomatique
Hors ligne
#3 Fri 25 January 2019 14:57
- preliator
- Participant assidu
- Date d'inscription: 17 Nov 2018
- Messages: 433
Re: QGIS: Relier un point à une route
Merci pour votre réponse, cependant l'ajout d'une couche virtuelle est nouveau pour moi. pourriez vous me décrire la démarche à suivre ?
J'ai essayé, un message d'erreur rouge m'affiche " La couche n'est pas valide: La couche ?layer=DB2::df:System&query=create%20table%20closest_point%20as%0D%0Aselect%20m.rowid%20as%20pid,%20lid,%20%0D%0Aclosestpoint(l.geometry,p.geometry)as%20geometry%0D%0Afrom%20mindist%20m,%20lin%20l,%20poi%20p%0D%0Awhere%20m.pid%3Dp.ogc_fid%0D%0Aand%20m.lid%3Dl.ogc_fid%0D%0Agroup%20by%20m.rowid; n'est pas une couche valide et ne peut pas être ajoutée à la carte "
Dernière modification par preliator (Fri 25 January 2019 14:58)
Hors ligne
#4 Fri 25 January 2019 15:39
Re: QGIS: Relier un point à une route
Assurez-vous :
- de remplacer point et ligne par les noms de vos couches de points et de lignes
- d'avoir une colonne fid dans point et dans ligne, ou bien il peut s'agit d'une colonne id, pk, à savoir un identifiant unique pour chaque objet point et ligne
geodata au cerema et petits billets en géomatique
Hors ligne
#5 Fri 25 January 2019 15:52
- carteq
- Participant assidu
- Date d'inscription: 8 Mar 2008
- Messages: 829
Re: QGIS: Relier un point à une route
Bonjour Mathieu, peux-tu me diriger vers la documentation pour le SQL dans le contexte de QGIS ?
Merci !
Hors ligne
#6 Fri 25 January 2019 16:18
Re: QGIS: Relier un point à une route
Ceci devrait faire l'affaire :
https://docs.qgis.org/2.14/fr/docs/user … ayers.html
et
https://www.gaia-gis.it/gaia-sins/spati … 2.3.1.html
geodata au cerema et petits billets en géomatique
Hors ligne
#8 Mon 28 January 2019 10:37
Re: QGIS: Relier un point à une route
Bonjour,
Appuyez sur "test". Si ok, alors banco
Sinon, vous avez peut-être mal tapé la requête SQL dans la fenêtre
Une fois que test ok, alors, il suffit de cliquer sur OK pour charger la couche sous nom par défaut, du coup, de virtual_layer
geodata au cerema et petits billets en géomatique
Hors ligne