使用QGIS计算点到线的最短距离?


12

对于具有很大数据集的QGIS中的一系列地址点,计算距最近道路的距离的最佳方法是什么?(QGIS 2.0.1,Win XP)

我阅读了以前类似问题的答案:

在QGIS中测量线与点之间的距离

在PyQGIS中绘制垂直线?

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

/programming/16448402/distance-of-point-feature-to-nearest-polygon-in-r

不过:

  1. MMQGIS插件查找到线网最近节点的距离,而不是到线的最短(垂直)距离。

  2. R和Python建议的脚本可以正确地用于小型数据集,并且可以在建模器中实现,但是对于我的工作,我有530个点和一个具有约135'000个要素的区域性街道图层,并在所有要素之间循环,然后以最短的距离进行操作所有点将花费大量时间

  3. 我在使GRASS在QGIS 2.0.1中工作时遇到问题(QGIS中的GRASS无法工作(Windows XP))。


1
我设法通过GRASS插件和v.distance工具计算了QGIS 1.8.0中的最小距离。执行大约需要15分钟(加上正确设置GRASS和导入图层所花费的时间...)。为什么ArcGIS(按空间位置连接)仍然比较快?
mic_cord 2013年

1
这是为任务优化空间索引和代码的问题。我刚刚检查了路由库(RW Net 4),对于街道应用程序网络,它每秒可以进行2000次这样的计算。与您的尺寸相同。比GRASS插件快4000倍。
Uffe Kousgaard

3
Postgis应该做得很快
NicklasAvén'13

1
@mic_cord能否请您详细介绍GRASS插件v.distance方法?我已经成功使用v.distance在QGIS之外使用GRASS进行工作,但是无法使其在“处理”工具箱(QGIS 2.6)中工作。
user25976

Answers:


6

我们正在解决类似的问题。对我们来说最好最快的方法是:

  1. 栅格化线层(栅格/转换/栅格化...)
  2. 转换为邻近度(栅格/分析/邻近度...)
  3. 使用插件的点采样工具从栅格获取所有点的值

5

有关在QGIS中测量线与点之间的距离的一些答案, 建议使用NNJoin QGIS插件(http://arken.nmbu.no/~havatv/gis/qgisplugins/NNJoin/)。它将进行最近邻空间连接,并将距离包括在结果中。该NNJoin插件使用空间索引,所以应该合理地处理大型数据集。


特维特,我赞成你的建议。我很惊讶这个插件比R中推荐的软件包(即geosphere :: dist2Line)运行得更快。
约翰内斯
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.