Qgis python开发简单入门

引入

Qgis作为一款开源的地图处理工具,兼容性好,能够对接多种空间数据源,本身轻量化,备受GIS工程师喜欢。但QGIS本身比较轻量,自身携带一些基础计算分析工具,但对于很多人来说可能不够用,因此需要进行二次开发。

Qgis二次开发的有两大方法,各有优势:

1.基于Qgis+visual studio+QT组合的全开发路径,基于C++语言,从无到有利用QGIS提供的库和函数,进行个性化工具的开发;

方法开发周期长,但自定义程度高。

https://blog.csdn.net/xiongjia516/article/details/81668665

https://blog.csdn.net/u014484783/article/details/80080615

2.基于python的嵌入式工具/脚本开发,基于python语言,在Qgis的基础上,使用Qgis提供的API(python的API库是基于C++语言生成的),实现计算或分析算法。

简单便捷,用于计算分析和重复性工作。

 

本文主要介绍第二种方法:

在QGIS中应用API进行个性化功能的开发,主要有三种途径:

  1. 在QGIS启动时,自动运行python
  2. 在QGIS中利用python交互行交互
  3. 创建使用python插件

这三种方法核心都是利用python API进行功能开发,不同是实现的方法不太一样而已;

1.每次QGIS启动,都默认在.qgis2/python中查找startup.py,启动QGIS自带的python解释器,可以插入自己预设的py文件,实现启动时执行;

2.可以通过在QGIS菜单栏的Plugin菜单下,打开自定义的python交互窗口。

3.可以通过在QGIS菜单栏的Plugin菜单下,打开自定义的python插件。

 

为了方便用户,交互控制台打开时默认载入如下包:

from qgis.core import *
import qgis.utils

因此,用户可以直接调用python API中的函数。

 

官方文档连接

pythonAPI库主要包括了qgis.core和qgis.gui两大库,前者提供了GIS计算和分析相关的函数方法,后者提供了GUI实现和对象交互等函数。

官方API介绍如下:

https://qgis.org/pyqgis/master/index.html

测试文档:https://docs.qgis.org/testing/en/docs/index.html

常用API语句

获取图层对象:

#打开QGIS当前激活的图层

layer = iface.activeLayer()
#打开指定路径下的图层

layer = QgsVectorLayer("testdata/airports.shp", "airports", "ogr")
#打开项目下指定的图层

QgsProject.instance().mapLayersByName()
#获取要素

Features=layer.getFeatures()
#定义坐标系:
layer.setCrs(qgis.core.QgsCoordinateReferenceSystem(4326, qgis.core.QgsCoordinateReferenceSystem.EpsgCrsId))
#获取要素属性:

name=str(feature.attribute('name'))

#获取要素几何:

geom=feature.geometry()
#定义坐标转换:

transf = QgsCoordinateTransform(QgsCoordinateReferenceSystem("EPSG:4326"),QgsCoordinateReferenceSystem("EPSG:3395"), QgsProject.instance())

#要素几何坐标转换:

geom.transform(transf)

 

其他语句学习链接:

https://blog.csdn.net/this_is_id/article/details/105238944

https://blog.csdn.net/this_is_id/article/details/90715443#5.5%20%E4%BD%BF%E7%94%A8%E7%A9%BA%E9%97%B4%E7%B4%A2%E5%BC%95

 

建议从官方API文档中找到自己需要的功能进行应用和学习

 

 

 

  • 2
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值