在QGIS中计算点和多边形之间的最小距离?


9

我有两个矢量层:一个点和一个多边形,我想计算每个点到多边形的最小距离(即到最近的多边形的最近点的距离)。

QGIS中是否有可用的插件来执行此操作?


1
您是说多边形顶点,质心还是其他?
lynxlynxlynx 2012年

Postgis可以更好地处理此任务。
巴勃罗(Pablo)

我的意思是距多边形边界的距离(实际上,这是我要计算的从海岸线观察到的海鸟与海洋的距离)
Sylvia

Pablo,很不幸,我不知道如何使用PostGIS,也无法编写代码...
Sylvia 2012年

Answers:


9

首先将多边形转换为点是个坏主意。您将不会计算到多边形的距离,而是将计算到多边形的最近节点(而不是可能更近的边)的距离。您可以使用NNJoin插件来对多边形进行精确测量。在进行分析之前,请确保您的图层在同一投影中。


1
QGIS NNJoin插件将负责坐标系统的转换。但是,您应该确保对联接数据集使用投影坐标系(如果输入数据集的坐标系不同,则输入数据集将转换为联接数据集的坐标系)。
阿瓦德·法伊特

6

如果要使用QGIS,则GRASS插件中的GRASS v.distance函数应该可以完成这项工作。该NNJoin插件应该适用于小型数据集,并且较笨重使用。

所述NNJoin插件使用QgsGeometry.distance()函数(它使用GEOSdistance)来计算距离。


3

首先将多边形转换为点:

矢量->几何工具->提取节点

添加此新图层,然后计算您的点图层和刚创建的新的多边形点图层之间的距离矩阵

矢量->分析工具->距离矩阵

确保选择“仅使用最近的(k)个目标点”作为1


这是对原始问题的一个很好的答案,但此问题已在注释中进行了修改。提取节点和距离矩阵可能找不到边界上的最近位置(最近的位置可能在边界折线的点之间)。GRASS v.distance或NNJoin插件即可。
哈瓦德·特维特(HåvardTveite)

2

尝试使用MMQGIS插件中的Hub Distance。

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


参考文献:


2
轮毂距离确实可以完成工作,但是为了记录起见,我首先将多边形转换为点层并计算了最小的点对点距离。使用多边形,它正在计算距形心或沿海边界中间的最小距离
Sylvia 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.