在QGIS中实现平端行缓冲区?


14

我需要将一系列直线缓冲40m,但是我只希望缓冲器从侧面伸出而不是从直线的两端伸出。

我知道在ArcGIS中有一个“平端”复选框可以实现此目的,但是不幸的是,目前我无法使用ArcGIS。

有什么方法可以在QGIS中实现?

我看过一些解决方法,但是由于我的数据集(国家道路网络)的规模,到目前为止,我发现的数据都不可行。


不确定数据的格式是什么,但是看起来您可以通过PostGIS语句gis.stackexchange.com/questions/1197/…来做
艺术品

Answers:


12

如果在工具集中使用v.buffer工具,则Grass Commands可以制作平面缓冲区。

有两个选择框: 缓冲 如果将Make outside corners straight设置为No,将Don't make caps at the ends of polylinesas 设置为Yes,结果应类似于ArcMap直边缓冲区。

以下是以上两个复选框的3种组合,请注意图层名称中的二进制组合(0 =否,1 =是)。 v。缓冲结果

您可能还应该运行拓扑修复程序/清理器,如果拓扑不完美,Grass工具往往会返回有趣的结果


太好了,这正是我所需要的,完全不知道QGIS将那些GRASS命令压缩掉了。非常感谢你。
rfreeman92 2014年

注意:有什么方法可以确保创建的缓冲区是单个多边形,而不是分解为一个大多边形?
rfreeman92 2014年

我也对获取单个多边形而不是一个溶解的多边形感兴趣。这可能吗?
user32882 '18

3

OpenJUMP可能不适合您,因为所有数据都必须容纳在内存中,但是使用64位jre时,限制非常高。最重要的是,它可以。

在此处输入图片说明


1
OpenJUMP的缓冲工具比QGIS或Esri更好地完成了此任务!
sirgeo

只是感谢您为我提供的软件,这些软件在许多基本算法中的运行速度似乎要快得多!:D
jhc 2015年

0

看起来,ST_Buffer()使用带有圆形接头的扁平端盖可以直接获得相同的结果,如下所示:

ST_Buffer(linestring_geom,<buffer_radius>,'endcap=flat join=round')
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.