我有一张地图,已经数字化并转换为矢量图层(只包含河流)。 问题是矢量化处理产生了大量河流线段,这些线段显示为不同的要素(每个要素可能由多条直线段组成,但它们并不能覆盖整个河流)。我正在寻找一个工具,可以将所有极端距离内的线段(折线)合并为一个要素。 我正在使用QGIS和GRASS插件。我尝试过v.clean.snap、v.build.polylines,但还没有真正成功合并线段。非常感谢任何帮助!
我有一张地图,已经数字化并转换为矢量图层(只包含河流)。 问题是矢量化处理产生了大量河流线段,这些线段显示为不同的要素(每个要素可能由多条直线段组成,但它们并不能覆盖整个河流)。我正在寻找一个工具,可以将所有极端距离内的线段(折线)合并为一个要素。 我正在使用QGIS和GRASS插件。我尝试过v.clean.snap、v.build.polylines,但还没有真正成功合并线段。非常感谢任何帮助!
你可以使用GEOS库在编程语言中实现,也可能在命令行中实现。在我的情况下,我是在R语言中进行的,使用rgeos
库:
require(rgdal)
require(rgeos)
lines <- readOGR("f:/dir", "itineraris")
# grouping line features by lines$ITINERARI
lines2 <- gLineMerge(lines, byid = lines$ITINERARI, id = lines$ITINERARI)
writeOGR(lines2, "f:/dir", "itineraris_merged", driver="ESRI Shapefile")
注意:从文档中的注释中可以看出,它会将具有相交端点的线段连接起来。似乎线特征必须是连续的,但不清楚在按ID合并时是否也适用。
您可以使用磁铁图标 (启用捕捉)来连接不同折线的2个顶点。这是一个手动过程,因此如果您想连接几条线,则非常有用:
现在,单击线的最后一个顶点,并将鼠标靠近您希望连接的顶点(QGIS将以粉色标记它)。
加入线后,记得使用融合工具合并属性,这样属性表上只保留一行。
您可以使用“DISSOLVE”工具(ARC TOOLBOX)将它们合并为一个线段。
然后,您可以导出节点(仅常规节点),这些是交点。
然后,您可以使用节点分割已溶解的线要素。这将至少为您提供仅在交点处拆分的矢量要素。
至少这是一个进展。