将多条线段连接到一条直线-GIS

将多条线段连接到一条直线-GIS,gis,qgis,Gis,Qgis,我有一张我已经数字化并转换成矢量图层的地图(仅限于河流)。 问题在于,矢量化为每条河流生成了大量的分段,这些分段显示为不同的特征(每个分段可能有多条直线分段,但它们不覆盖整个河流)。我要找的是一个工具,可以将极端值在给定距离内的所有线段合并为一个特征(我想是一条多段线)。 我正在使用QGis和GRASS插件。我尝试过v.clean.snap、v.build.polylines,但还没有真正合并这些线。任何帮助都将不胜感激 我建议手动选择线条部分,然后使用“合并”工具(位于高级编辑工具栏中) 您也

我有一张我已经数字化并转换成矢量图层的地图(仅限于河流)。 问题在于,矢量化为每条河流生成了大量的分段,这些分段显示为不同的特征(每个分段可能有多条直线分段,但它们不覆盖整个河流)。我要找的是一个工具,可以将极端值在给定距离内的所有线段合并为一个特征(我想是一条多段线)。
我正在使用QGis和GRASS插件。我尝试过v.clean.snap、v.build.polylines,但还没有真正合并这些线。任何帮助都将不胜感激

我建议手动选择线条部分,然后使用“合并”工具(位于高级编辑工具栏中)

您也可以在

上询问此类问题。您可以使用“溶解”工具(ARC工具箱)。这将把它们合并成一个段

然后可以导出节点(仅常规),这是交点

然后,可以使用节点拆分已分解的线要素。这将至少为您提供仅在相交点拆分的矢量特征


至少这是更进一步的一步。

您可以使用编程语言中的GEOS库,也可以使用命令行。在我的例子中,我在R中使用
rgeos
library:

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")
require(rgdal)
需要(rgeos)

对于其他在这个问题上遇到障碍的人:

您可以使用道路图插件(最短路径)或PointsToRoute脚本。 选择任意一端的点(如果是Points2Route,则添加额外的点以从多个路径指定),然后导出到其自己的图层

就133张地图而言。。我已经修改了PointsToRoute脚本,以适应类似的重载情况,从而自动单步通过一层线并在它们的端点之间找到路由。我会把它清理干净,看看能不能很快在github上发布

点路由:

最短路径(路图): 这是由QGIS插件管理器启用的。
请注意,在最新版本的QGIS中,尽管插件称自己为“最短路径”,但它是通过Vector->RoadGraph->Settings菜单配置的。这是一个非常晚的答案,可能对其他人有用:

我也面临同样的问题,我开发了一个QGIS插件来解决它。它会自动将多条连接线(即共享一个端点的线)合并为一组较小的较长线。输出图层类型为直线,而不是多段线。合并可以基于以下两个标准之一:

  • 长度:线段合并到其最长的相邻线段
  • 对齐:将线段合并到其最佳对齐的相邻线段。我认为这个标准最适合河网

这个插件名为MergeLines(),您可以在公共QGIS repo中找到它。工作仍在进行中,请毫不犹豫地提出新功能。

谢谢,但我有几百种这样的情况,我必须重复133张地图。。。。。。我想我真的需要为这个找到一个插件。有什么建议我可以开始寻找吗?你的每一条河流都有一个共同的ID吗?重新回滚对Q的编辑:“合并”和“groub by”当原始内容足够时,似乎对问题标题进行了一些小的和切向的编辑。OP询问QGIS解决方案,而您似乎指的是ArcGIS?如果QGIS 3有此插件,那将是非常好的!