我最接近的就是“合并选定的特征”。这给了我一个功能,但是它由两条不相交的线组成-端点之间没有线。
我正在寻找与Illustrator的“连接路径”功能类似的对象(“对象”>“路径”>“连接” )。
QGIS可以吗?
#1 楼
快速回答:不!没有类似的工具可以直接在图层上执行此操作(“加入两行”插件需要相交)。您可以通过将线转到点(提取节点)然后与points2one(线输出)连接来在一个非常简单的图层上进行操作,但这比手工编辑要慢得多:
确保为线层打开了捕捉功能(“设置” |“捕捉选项” ...)(5像素对我来说效果很好)。
创建从一个端点到另一端点的新行。
选择所有三行(两个原始行+一个新行)并合并它们(“编辑|合并所选功能或工具栏按钮”。 >
#2 楼
您可以结合使用QGIS和GRASS来完成此操作。 (QGIS |插件> GRASS>打开地图集)将GRASS地图集中的矢量层添加到QGIS项目(QGIS |插件> GRASS>添加GRASS矢量层)
使用v.clean.snap(QGIS |插件> GRASS>打开GRASS工具>模块列表> v.clean.snap)
调整v.clean.snap的“阈值”以在整个研究区域中获得正确的顶点捕捉。
#3 楼
我假设您要将两个线段合并为一行。这就是我的操作方法...
启用编辑。
打开捕捉(设置->捕捉选项...)。
选择节点节点工具。
双击其中一行的末端以添加节点。
拖动末端的节点以扣紧末端另一行的
选择两条线
合并它们的属性(如果它们具有不同的属性,则不能使它们成为一条线) 的两个功能
这应该导致一行。
评论
一切都很好。但是22,000行的数据集呢?我无法手动执行此操作...
–FaCoffee
17年1月17日在9:50
#4 楼
有一个QGIS插件,说它完全可以满足您的要求。https://plugins.qgis.org/plugins/joinmultiplelines/
https://github.com/dgoedkoop/joinmultiplelines
(但是,我当时无法在QGIS 2.6中正确使用它)
评论
在3.8中表现出色
–user94812
19-10-17在20:35
#5 楼
如果您是说单个功能是由MULTILINESTRING而不是单个LINESTRING组成的,那么,如果您使用的是Postgis数据库,则可以轻松地解决该问题:只希望1行执行此操作,您应该添加WHERE id = your_row_id。
#6 楼
也可以尝试:将.shp保存为.dxf
使用DraftSight打开.dxf
连接折线零件
使用qgis重新打开.dxf并保存作为.shp
,从“矢量”菜单->几何工具->线到多边形
#7 楼
我只是用QGIS 3.4.0做到了这一点,使用了上面tnagel提到的插件Join Multiple Lines(安装在Vector菜单> Join Multiple Lines下)。很好地将大约60条尾迹线片段合并为大约20条尾迹线。您拥有的碎片越多,覆盖的面积越大,这就越不实用,因为您必须观察结果是否有问题(tnagel可能是我描述的问题之一)。选择要加入的线,单击菜单项,然后将它们结合起来(即使末端相距一英里,也可以选择任意数量的线,但是...) ,您会从一条线的一端到另一条线的一端连接一条直线,因此请确保两端足够近,这样您才能对结果满意(我在另一篇文章中用笔尖标记了带有标记的直线,因此易于查看(“属性”>“符号系统”>添加一个标记线,并使该符号足够大以便于轻松查看,然后选择“仅在最后一个顶点上”单选按钮(如果需要,还可以添加另一个标记线)另一个符号,然后选择“仅在第一个顶点上”))
另外,线显然也可以是有方向的。因此,您必须注意(例如)线A的最南端不与B线下方最南端(您不希望使用的另一条长直线)。
我发现发生这种情况时可以“撤消”并使用“反向线”在“高级处理工具栏”中,将一条线的方向从一端翻转到另一端(不改变行的位置,只需将行的起点与行的终点翻转),然后再次加入行。
这样做的好处是,您所做的更改/编辑将保存到现有图层中,因此无需将结果另存为新shapefile(首先进行备份)。
我对QGIS的核心和插件开发人员所做的工作感到惊讶。显示聪明的建设性人在决定共同努力时可以做什么。谢谢!
#8 楼
使用OpenJUMP(增强版):文件>打开文件
拓扑>网络拓扑清理...
右键单击新层(已修复) :将数据集另存为....
结果如下:
评论
谢谢。我只有几行要合并,所以这很容易。 (@Michael Markieta的答案似乎更适合复杂情况。)
–埃文
2012年1月24日19:44