对于AI中的每个点,都希望将B中最近的点的所有属性结合起来。 />理想情况下,这还将包括一个用于测量两点之间距离的字段。位置,然后选择从最近的点连接属性。
我在QGIS中找不到类似的功能。有指针吗?
#1 楼
使用“距离矩阵”可以计算最近的点。确保两个图层都在同一个CRS中!然后,您可以加载结果并将其用于连接表A和B。在“距离矩阵”中选择:“线性距离矩阵”,并且“仅使用最近的k个目标点:1”
使用“添加矢量图层”加载CSV,并在图层A的图层属性中合并图层-连接选项卡。 >
结果:
#2 楼
NNJoin插件应该可以完成这项工作。对于输入层的每个要素,它会在连接层中添加最接近要素的所有属性,并且还会添加一个距离属性以及与该要素的距离。评论
完美运作。比接受的答案快。请注意,如果是2011年,则为可接受的答案。
– juminet
17年6月9日在11:54
至少,今天比公认的答案要好得多。快得多。
–CésarArgulGarcía
17年11月17日在18:27
#3 楼
在QGIS 3.8及更高版本中,Processing Toolbox
中的“按最近的联接属性”本机工具可以轻松完成该工作!#4 楼
如果您可以仅从“ B”层加入单个属性,请查看mmqgis插件中的“集线距离”工具。如果需要其余的“ B”属性,则应该可以将其余的“ B”属性重新加入该层。
您可以如果需要,还可以选择生成从A到B的线。这有助于可视化关联要素之间的距离和方向。
#5 楼
使用refFunctions插件的另一种方法。(1)示例数据集
(2)打开具有更多功能的图层的属性表(在此示例中为
points_b
层),因此不会丢失任何对。创建新字段。另一层的ID字段:
geomnearest('points_a', 'id_a')
检测到的对的距离字段:
geomnearest('points_a', '$distance')
#6 楼
使用QGIS 1.7矢量>数据管理>按位置连接属性评论
我也想到了这一点,但是当我进行测试时,它仅适用于精确匹配,例如点多边形。它找不到与另一个点最近的点。在v1.7中测试
– RyanKDalton
2011年6月22日21:48
我有零场比赛。这是行不通的。
–弗雷德
2011年6月22日21:55
评论
如果要使用距离矩阵在一层内的点之间具有距离,则应更改k = 2,因为存在以下已知问题:hub.qgis.org/issues/4761
– Celia
2012-02-21 17:31
@underdark似乎此解决方案不再起作用。我能够创建matrix.csv并将其加入我的第一层。在您的示例中,您添加了第二个联接,根据矩阵中的TargetID将第二层连接到第一层。但是对话框中没有显示连接的字段,因此我无法选择TargetID。当然我可以先将save_as作为图层,然后进行第二次连接...
– Bernd V.
13年5月22日在16:37