首页 > 编程知识 正文

gis道路缓冲区分析,arcgis缓冲区分析输出为直角

时间:2023-05-05 05:27:50 阅读:120142 作者:525

缓冲区分析是GIS中的入门级分析内容,使用非常广泛。 例如,有必要统计一下市内所有学校周围1公里范围内各有多少家小吃店。 统计全市所有楼盘周围2公里范围内各有多少配套设施? 等等。 它们都为分析对象创建不同大小的缓冲区,并利用空间查询统计缓冲区范围内的特定属性。

本文分两个部分进行说明。 首先介绍如何使用QGIS桌面端的软件操作来生成缓冲区,然后再谈PyQGIS的编程实现。 再次强调,PyQGIS的接口与c的接口基本一致,可以像在c上开发QGIS的朋友一样参考正文。

在本文中,您可以使用QGIS附带的示例数据“airports.shp”或自由使用自己的数据。

QGIS桌面端缓冲区分析

1、打开QGIS桌面软件,加载" airports.shp "数据。

2、打开QGIS菜单项" Processing - Toolbox ",在弹出窗口中,输入" buffer "进行查询,选择" fixed distance buffer "命令,然后单击(注意:这里的距离是我输入的1000,单位是当前地图单位,剩下的保持默认值。)

3、点击确定后,地图中将添加“缓冲区”图层,地图画布上将显示缓冲区的形状。 (为了便于显示,这里将“airports”层的样式设置为飞机的形状。)

是so easy吗? 这样就有缓冲器了。 利用该缓冲层,可以查询统计当前机场周边的情况。

PyQGIS的实现

现在,让我们使用PyQGIS来实现同样的功能。 这有助于编程自动处理和二次开发。

1、打开图层,显示在地图画布上。 这个我在以前的文章里说过了,接下来直接给代码

layer=qgsvectorlayer ('/users/ja Cory/one驱动器/backup/files backup/qgis _ sample _ data/shape files/airports

' airports ',' ogr ' )

QgsMapLayerRegistry.instance ().addmaplayers ([ layer ] ) ) ) ) ) ) ) ) )。

2、新建临时缓冲图层,获取该图层的"数据提供器",准备添加元素

buffer layer=qgsvectorlayer (' polygon )、' buffer )、' memory () ) ) )。

pr=buffer layer.data提供程序(

3、循环“layer”层的各要素,形成缓冲区

features=layer.getFeatures (

for feat in features:

#创建缓冲区。 第一个参数是Distance,第二个参数是segments

buffer=feat.geometry ().buffer ) (1000,5 ) )。

#新要素存储缓冲区几何图形并将其添加到缓冲区图层

b=QgsFeature () )

b .设置几何(缓冲区) )。

pr.addfeatures([b] ) )。

4、最后,将该缓冲图层添加到地图画布上进行显示

bufferLayer.updateExtents (

设置buffer layer.setlayertransparency (70 ) #图层的透明度,以便可以忽略

QgsMapLayerRegistry.instance ().addmaplayers([bufferlayer] ) )。

结合上一句中提到的向量层查询操作,可以进行具体的空间查询和统计。

-------------请参阅

嗯,是的谢谢你读给我听。

如果朋友们有兴趣的内容,笔者想参加写作计划。 你可以在评论区留言。 一起探讨,共同进步!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。