我的问题如下:我有一个线shp(目标层)和一个点shp(连接层)。第二个层(点层)拥有一个属性,我想根据与该线的最近距离与该层连接。点和线不相交
我可以使用ArcGIS和空间连接(匹配选项:最接近)来做到这一点,但是我不知道如何在QGIS中实现这一点。
我的问题如下:我有一个线shp(目标层)和一个点shp(连接层)。第二个层(点层)拥有一个属性,我想根据与该线的最近距离与该层连接。点和线不相交
我可以使用ArcGIS和空间连接(匹配选项:最接近)来做到这一点,但是我不知道如何在QGIS中实现这一点。
Answers:
我认为没有为此提供“核心” QGIS功能。但是,请安装MMQGIS插件,并使用“轮距”工具。选择您的点作为“源点”层,选择线作为“目标集线器层”,并将“输出形状类型”设置为“线到集线器”。这将为您提供连接最接近特征的线的shapefile(具有长度)。方便地,它还将最接近的要素的ID添加到属性表。
编辑/注释:如果点数少于线数,或者一对一的线对点情况,此方法效果很好。点多于线会使事情复杂化。“中心距”工具将线要素的ID作为“ HubName”添加到点属性表中,并将点与线中心之间的距离作为“ HubDist”。如果点比线多,则需要额外的工作来确定点的每个子集(与每个线集线器链接的多个记录),其中哪个最接近每条线,和/或哪个点具有所需的一组线。属性加入行。
GRASS v.distance函数可用于此目的。在QGIS中,您可以通过GRASS插件访问该功能(处理版本当前不起作用)。该NNJoin QGIS插件可能是一个简单的选择。
NNJoin插件从未让我失望过,并且可以处理大型数据集。
插件>安装:NNJoin> NNJoin>选择输入层和连接层>然后单击连接。
使用属性表检查新输出层的结果。警告:请确保两个图层都使用相同的空间投影,否则结果将为空白。