PyQGIS二次开发指南

当你的数据处理使用的是Python语言,而你的导师又让你开发界面,那么PyQGIS二次开发指南是你必读的圣经。QGIS支持Python语言进行二次开发,你将学会如何使用Qt Designer进行界面设计、加载栅格数据、加载矢量数据、软件打包、安装包制作等。

写在前面

随着GIS应用在国内的逐渐增多,越来越多的行业会需要使用GIS软件进行处理。目前国内的GIS软件基本为ArcGIS,ESRI作为GIS行业的龙头老大,依靠着ArcGIS基本占据着GIS软件的全部江山,其功能丰富强大,且社区最为活跃,但随着近期的俄乌战争,ESRI制裁俄罗斯的事件,还是可以感受到闭源软件的不可控性。

QGIS是一个开源、免费、轻量级的GIS软件,虽然在国内的普及程度不高,但不妨碍其软件的优秀程度。QGIS的软件功能及其丰富,并且还有海量的插件库供不同方向的GIS人员选择,是一个充满活力的开源社区。QGIS是一个使用C++语言开发的软件,其二次开发难度较大,且需要经历复杂的编译、源码理解,需要较高的门槛。

值得庆幸的是,QGIS支持python语言进行二次开发, python作为一个较易上手的胶水语言,在GIS社区较为活跃,例如:GDAL、Shapely、Fiona、RTree、pyproj、GeoPandas、rasterio、GeoDjango等开源框架都可以在python上使用,python语言是一个特别适合GIS领域的语言,更不用说现在火热的机器学习、深度学习都与python密切相关。QGIS的提供的PYQGIS的接口与C++ QGIS的接口基本保持一致,学习PyQGIS也能基本熟悉c++的QGIS,方便后续继续进行深入研究,作为想要入门QGIS二次开发的人员来说再为合适不过了。

本系列的教程将会从二次开发环境配置、pycharm配置、pyqgis语法、qtDesigner使用教程、插件设计等方面,结合笔者在项目中的实践一一展开叙述,希望最后,能在所有的系列教程结束后,让跟着系列做的读者都可以开发出一个属于自己的GIS界面。

界面预览

开发环境准备

安装PyQGIS

下载PyQGIS

大家可以在Index of /downloads (qgis.org)中找到自己的开发环境,笔者选择了 windows 下的 QGIS 3.30.0,点击msi进行安装。目录结构如下:

.
├── apps
├── bin
├── doc
├── etc
├── lib
├── share
├── var
├── main.spec 
├── OSGeo4W.bat
├── OSGeo4W.ico
└── start_up.bat

验证安装

在 Win 中搜索 QGIS,或者找到bin目录下的qgis-bin.exe打开 QGIS 桌面软件,输入Ctrl + Alt + P,打开Python控制台,我们尝试输入一下代码:

from qgis.core import QgsRasterLayer

若没有提示报错,说明我们的安装成功了。

PyCharm环境配置

新建项目pyqgis-se,在System Interpreter中选择 QGIS 安装目录下的bin\python-qgis.bat

效果如下:

环境选择好之后,创建项目

Hello QGIS

在根目录创建入口文件main.py,写入如下代码:

if __name__ == '__main__':
    # 第二个参数为是否启用 GUI
    qgs = QgsApplication([], False)
    # 初始化 QGIS
    qgs.initQgis()
    print(QgsApplication.prefixPath())
    print('Hello Qgis!')

运行后,控制台输出如下:

D:/PROGRA~2/QGIS33~1.0/apps/qgis
Hello Qgis!

正式开发

这部分内容过多,请移步:swcode - PyQGIS二次开发指南

参考文章

热门相关:福慧双全   重生田园贵媛:名门暖婚   九星毒奶   魅王毒后   太监武帝