【问题标题】:Join multiple line segments into one line - GIS将多条线段连接成一条线 - GIS
【发布时间】:2023-03-15 22:59:01
【问题描述】:

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

【问题讨论】:

  • 你的每条河流都有一个共同的 ID 吗?
  • 重新回滚对 Q 的编辑:当原件足够且足够时,“合并”和“groub-by”似乎对问题标题进行了一些次要和切线的编辑。

标签: gis qgis


【解决方案1】:

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

您可能还想通过http://gis.stackexchange.com 询问此类问题

【讨论】:

  • 谢谢,但我有几百个这样的情况,我必须重复133张地图……我想我真的需要一个插件来解决这个问题。我可以从哪里开始寻找任何建议?
【解决方案2】:

您可以使用“溶解”工具 (ARC TOOLBOX)。这会将它们全部合并为一个片段。

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

然后您可以使用节点分割溶解的线要素。这至少会为您提供仅在相交点处分割的矢量特征。

至少是更进一步。

【讨论】:

  • OP 询问 QGIS 解决方案,您似乎指的是 ArcGIS?
【解决方案3】:

您可以在您的编程语言中使用 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")

小心:从documentation 中的注释“特别是它连接具有相交端点的线段” 似乎线特征必须是连续的 - 但不清楚这是否适用也适用于您按 ID 合并的情况。

【讨论】:

    【解决方案4】:

    对于其他偶然发现这个问题的人:

    您可以使用 Roadgraph 插件 ( Shortest Path ) 或 PointsToRoute 脚本。 在任一端选择点(或者在 Points2Route 的情况下添加额外点以从多个路径中指定),然后导出到它自己的层。

    就 133 张地图而言。我已经修改了 PointsToRoute 脚本以适应类似的重载情况,以自动穿过一层线并在其端点之间找到路线。我会清理一下,看看能不能尽快发布到github上。

    PointsToRoute: https://github.com/anitagraser/QGIS-Processing-tools/blob/master/1.1/scripts/points_to_route.py

    最短路径(路线图): 这是由 QGIS 插件管理器启用的。 请注意,在最新版本的 QGIS 中,它是由 Vector->RoadGraph->Settings 菜单配置的,尽管插件将自己称为“最短路径”。

    【讨论】:

      【解决方案5】:

      一个很晚的答案,可能对其他人有用:

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

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

      这个插件叫做 MergeLines (full documentation here),你可以在公共 QGIS 仓库中找到它。工作仍在进行中,欢迎提出新功能。

      【讨论】:

      • 如果有这个 QGIS 3 插件会很高兴!
      猜你喜欢
      • 2019-05-24
      • 2011-08-09
      • 2011-12-12
      • 2015-01-07
      • 1970-01-01
      • 2011-04-28
      • 2015-07-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多