在QGIS中合并端点稍有不同的行


22

在QGIS中,我有两行。端点彼此靠近,但不完全对齐。我想将两条线合并为一条,将两个端点合并为中点。

我最接近的功能是“合并所选功能”。这给了我一个功能,但是它由两条不相交的线组成-端点之间没有线。

我正在寻找行为与Illustrator的“连接路径”功能类似的对象(“对象”>“路径”>“连接”)。

QGIS会这样做吗?

Answers:


12

快速回答:不!没有类似的工具可以直接在图层上执行此操作(“加入两行”插件需要相交)。

您可以通过将线转到点(提取节点)然后与points2one(线输出)联接来在非常简单的图层上进行此操作,但这比手动编辑要慢得多:

  1. 确保您的线图层已启用捕捉(“设置” |“捕捉”选项...)(5像素对我来说效果很好)。
  2. 创建从一个端点到另一端点的新行。
  3. 选择所有三行(两个原始行+一个新行)并合并它们(“编辑|合并所选功能或工具栏按钮”)。

1
谢谢。我只有几行要合并,所以这很容易。(@Michael Markieta的回答似乎更适合复杂的情况。)
Evan

14

您可以结合使用QGIS和GRASS来完成此任务。

  1. 将矢量图层导入GRASS映射集中(“草” |“文件”>“导入矢量数据”)
  2. 在QGIS中打开地图集(QGIS |插件> GRASS>打开地图集)
  3. 将GRASS地图集中的矢量层添加到QGIS项目(QGIS |插件> GRASS>添加GRASS矢量层)
  4. 使用v.clean.snap(QGIS |插件> GRASS>打开GRASS工具>模块列表> v.clean.snap)

调整v.clean.snap的“阈值”以在整个研究区域中获得正确的顶点捕捉。


10

我假设您想将两个线段合并为一行。 在此处输入图片说明

这就是我做到的...

  • 启用编辑。
  • 打开捕捉(设置->捕捉选项...) 在此处输入图片说明
  • 选择节点节点工具。在此处输入图片说明
  • 双击靠近其中一行的末尾以添加节点。 在此处输入图片说明
  • 拖动末端的节点以捕捉到另一行的末端 在此处输入图片说明
  • 选择两条线
  • 合并它们的属性(如果它们具有不同的属性,则不能使Therm成为一行)在此处输入图片说明
  • 合并两个功能在此处输入图片说明

这应该导致一行。 在此处输入图片说明


一切都很好。但是22,000行的数据集呢?我无法手动执行此操作 ……
FaCoffee '17


3

如果您的意思是单个功能由MULTILINESTRING而不是单个LINESTRING组成,那么如果您使用的是Postgis数据库,则可以轻松解决该问题:

update your_table set your_geo_column = ST_LineMerge(your_geo_column);

如果只希望1行执行此操作,则应该添加WHERE id = your_row_id。


2

也有人可以尝试:

  1. 将.shp保存为.dxf
  2. 用DraftSight打开.dxf
  3. 连接折线零件
  4. 用qgis重新打开.dxf并另存为.shp
  5. 从矢量菜单->几何工具->线到多边形

2

我只是使用QGIS 3.4.0使用上面tnagel提到的插件“加入多条线”(在“矢量”菜单>“加入多条线”下安装)进行此操作。很好地将大约60条尾迹线片段合并为大约20条尾迹线。您拥有的碎片越多,覆盖的面积越大,这就越不实用,因为您必须观察结果是否有问题(tnagel可能是我描述的问题之一)。

您选择要加入的线,单击菜单项,然后它们会合并它们(您可以选择任意多的线,但是...),即使两端相距一英里,您也会从直线上得到一条直线。一端连接到另一端将它们连接起来,因此请确保两端足够靠近,以便对结果满意(我在另一篇文章中使用了尖端,用标记来标记行的末端,这样很容易进行查看(“属性”>“符号系统”>添加标记线,并使该符号足够大以便于查看>选择“仅在最后一个顶点上”单选按钮(如果需要,添加另一条带有不同符号的标记线,然后选择“在第一个顶点上”)仅顶点”)。

而且,线显然可以是定向的。因此,您必须注意(例如)A线的最南端与它下方的B线的最南端(另一条不需要的长直线)汇合。

我发现发生这种情况时,我可以“撤消”并使用“高级处理”工具栏中的“反向线”将线的方向从一端翻转到另一端(不改变线的位置,只需翻转线的起点与该行的结尾),然后再次加入这些行。

这样做的好处是,您的更改/编辑将保存到现有图层,因此无需将结果另存为新的shapefile(首先进行备份)。

我对QGIS的核心和插件开发人员所做的工作感到惊讶。展示了聪明的建设性人在决定共同努力时可以做什么。谢谢!


0

使用OpenJUMP(增强版):

  1. 文件>打开文件
  2. 插件>拓扑>网络拓扑清洗...
  3. 右键单击新图层(固定):将数据集另存为...。

结果如下: 在此处输入图片说明


0

在我的情况下,这些线位于不同的图层中并且具有不同的属性。我将这些层与mmqgis合并,然后在下一步中使用对齐和合并线的技术来合并线。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.