#1 Fri 08 February 2019 17:18
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1670
QGIS: Point le plus proche
Bonjour,
Je dois spécifier pour chaque adresse pour mon intercommunalité, le point d'apport volontaire le plus proche.
Comment y parvenir?
Hors ligne
#2 Fri 08 February 2019 17:43
- carteq
- Participant assidu
- Date d'inscription: 8 Mar 2008
- Messages: 829
Re: QGIS: Point le plus proche
En SQL, via le DB Manager, ça devrait ressembler à
Code:
Select A.ID, min(St_distance(A.geometry, B.geometry)) as Dist from intercomm as A, pt_app_vol as B GROUP BY A.ID
Vous pouvez remplacer ID par le champ qui contient l'identifiant ou le nom de l'intercommunauté
Dernière modification par carteq (Fri 08 February 2019 17:45)
Hors ligne
#3 Sun 10 February 2019 12:39
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1670
Re: QGIS: Point le plus proche
je suis novice avec DB Manager. Il est bien installé mais je ne sais comment le faire fonctionner...
Hors ligne
#4 Mon 11 February 2019 10:12
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3947
Re: QGIS: Point le plus proche
Bonjour,
Voir aussi l'extension NNjoin
Hors ligne
#5 Mon 11 February 2019 10:15
Re: QGIS: Point le plus proche
Bonjour,
La solution de carteq peut être reportée dans les couches virtuelles : Couche > Ajouter une couche virtuelle.
Autrement, voici une solution qgis sans SQL, à utiliser dans le calculateur d'expression
Suppose d'avoir une couche pav avec champ libelle
Expression à insérer au niveau de la couche point (et pas pav)
Code:
with_variable('mindistance', aggregate('pav', 'min', distance($geometry, geometry(@parent))), aggregate('pav', 'concatenate',"libelle", filter:=distance($geometry, geometry(@parent)) = @mindistance))
geodata au cerema et petits billets en géomatique
Hors ligne
#6 Mon 11 February 2019 10:58
- ChristopheV
- Membre
- Lieu: Ajaccio
- Date d'inscription: 7 Sep 2005
- Messages: 3199
- Site web
Re: QGIS: Point le plus proche
Bonjour,
La solution SQL est différente de celle proposée plus haut :
Il faut utiliser la notion de plus proche voisin, ou KNN (K nearest neighbor). Voir ici :
https://postgis.net/docs/geometry_distance_knn.html
Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close
Hors ligne