在QGIS中按位置(最近距离)连接点和线层的属性


13

我的问题如下:我有一个线shp(目标层)和一个点shp(连接层)。第二个层(点层)拥有一个属性,我想根据与该线的最近距离与该层连接。点和线不相交

我可以使用ArcGIS和空间连接(匹配选项:最接近)来做到这一点,但是我不知道如何在QGIS中实现这一点。


3
有一个工具可以按位置加入,但没有“最接近”选项。我不知道是否有任何解决方法。通常,请评估以支持您缺少的,喜欢的选件/工具的开发,用户也可以通过这种方式来帮助该软件不断发展。
Giovanni Manghi 2011年

Answers:


8

我认为没有为此提供“核心” QGIS功能。但是,请安装MMQGIS插件,并使用“轮距”工具。选择您的点作为“源点”层,选择线作为“目标集线器层”,并将“输出形状类型”设置为“线到集线器”。这将为您提供连接最接近特征的线的shapefile(具有长度)。方便地,它还将最接近的要素的ID添加到属性表。

编辑/注释:如果点数少于线数,或者一对一的线对点情况,此方法效果很好。点多于线会使事情复杂化。“中心距”工具将线要素的ID作为“ HubName”添加到点属性表中,并将点与线中心之间的距离作为“ HubDist”。如果点比线多,则需要额外的工作来确定点的每个子集(与每个线集线器链接的多个记录),其中哪个最接近每条线,和/或哪个点具有所需的一组线。属性加入行。


应将其标记为答案,但需对“线” v“点”进行较小的修改
威利(Willy)2012年

1
如果以“离直线最近的距离”为标准,则“中心距”不是正确的工具。mmqgis代码表明,轮毂距离使用的是“轮毂”几何形状的近似值。距离计算(mmqgis_distance)以两点为参数。这是执行mmqgis_library.py中轮毂几何形状近似的代码:“ feature.geometry()。boundingBox()。center()”。这意味着将使用几何图形边界框的中心而不是实际几何图形。因此,如果以“最接近线的距离”为标准,则GRASS v.distance或NNJoin插件更为合适。
哈瓦德·特维特(HåvardTveite)2014年

5

GRASS v.distance函数可用于此目的。在QGIS中,您可以通过GRASS插件访问该功能(处理版本当前不起作用)。该NNJoin QGIS插件可能是一个简单的选择。


3

NNJoin插件从未让我失望过,并且可以处理大型数据集

插件>安装:NNJoin> NNJoin>选择输入层和连接层>然后单击连接。

使用属性表检查新输出层的结果。警告:请确保两个图层都使用相同的空间投影,否则结果将为空白。


2

在2019年,QGIS 3桑给巴尔工具``按最近的联接属性''可能实现了这一目标。使用此工具,您可以找到最接近的特征并加入选定的属性。如果指定最大距离和最大最近邻居,也可以进行一对多联接。

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.