Calcul de la distance minimale entre des points et des polygones dans QGIS?

9

J'ai deux couches vectorielles: un point et un polygone et je veux calculer la distance minimale de chaque point des polygones (c'est-à-dire la distance du point le plus proche du polygone le plus proche).

Existe-t-il un plugin disponible dans QGIS pour faire cela?

Sylvia
la source
1
vous voulez dire les sommets des polygones, le centroïde ou autre chose?
lynxlynxlynx
Cette tâche serait mieux gérée par les postgis.
Pablo
Je veux dire la distance des frontières du polygone (en fait, c'est la distance des oiseaux de mer observés dans la mer du littoral que je veux calculer)
Sylvia
Pablo, malheureusement je ne sais pas comment utiliser PostGIS et je ne peux pas écrire de code ...
Sylvia

Réponses:

9

Convertir d'abord votre polygone en points est une mauvaise idée. Vous ne calculerez pas la distance à votre polygone, vous calculerez la distance au nœud le plus proche de vos polygones (pas les bords qui peuvent être plus proches). Vous pouvez utiliser le plugin NNJoin pour obtenir des mesures précises de votre polygone. Assurez-vous que vos calques sont dans la même projection avant de faire l'analyse.

gistutor
la source
1
Le plugin QGIS NNJoin se chargera de la transformation du système de coordonnées. Mais vous devez vous assurer que vous utilisez un système de coordonnées projeté pour le jeu de données de jointure (le jeu de données d'entrée sera transformé en système de coordonnées du jeu de données de jointure si leurs systèmes de coordonnées diffèrent).
Håvard Tveite
6

Si vous souhaitez utiliser QGIS, la fonction GRASS v.distance dans le plugin GRASS devrait faire le travail. Le plugin NNJoin devrait fonctionner pour les petits ensembles de données et est moins lourd à utiliser.

Le plugin NNJoin utilise la fonction QgsGeometry.distance () (qui utilise GEOSdistance) pour calculer les distances.

Håvard Tveite
la source
3

Convertissez d'abord le polygone en points:

Vecteur -> Outils de géométrie -> Extraire les nœuds

Ajoutez cette nouvelle couche, puis calculez une matrice de distance entre votre couche de points et la nouvelle couche de points de polygone que vous venez de créer

Vecteur -> Outils d'analyse -> Matrice de distance

Assurez-vous de choisir "Utiliser uniquement les points cibles les plus proches (k)" comme 1

Brendan Nee
la source
C'est une bonne réponse à la question d'origine, mais la question a depuis été modifiée dans un commentaire. Les nœuds d'extraction et la matrice de distances peuvent ne pas trouver l'endroit le plus proche sur la frontière (l'endroit le plus proche peut être entre les points de la polyligne de la frontière). GRASS v.distance ou le plugin NNJoin le fera.
Håvard Tveite
2

Essayez Hub Distance dans le plugin MMQGIS.

http://michaelminn.com/linux/mmqgis/


Références:

Willy
la source
2
La distance au moyeu a fait l'affaire, mais pour mémoire, j'ai d'abord converti le polygone en une couche de points et calculé les distances minimales de point à point. Avec les polygones, il calculait la distance minimale par rapport aux centroïdes ou au milieu de la frontière côtière
Sylvia