宁睿 发表于 2024-5-18 11:55:45

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界面。
界面预览

https://gcore.jsdelivr.net/gh/sx-code/tuchuang@main/pyqgis/pyqgis37.pnghttps://gcore.jsdelivr.net/gh/sx-code/tuchuang@main/pyqgis/pyqgis36.pnghttps://gcore.jsdelivr.net/gh/sx-code/tuchuang@main/pyqgis/pyqgis39.png开发情况准备

安装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
https://gcore.jsdelivr.net/gh/sx-code/tuchuang@main/pyqgis/pyqgis01.png结果如下:
https://gcore.jsdelivr.net/gh/sx-code/tuchuang@main/pyqgis/pyqgis02.png情况选择好之后,创建项目
https://gcore.jsdelivr.net/gh/sx-code/tuchuang@main/pyqgis/pyqgis03.pngHello 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二次开发指南
参考文章


[*]yoyi - PyQGIS二次开发教程(一):准备工作
[*]yoyi - PyQGIS二次开发教程(二):加载影像与矢量:准备工作
[*]yoyi - PyQGIS二次开发教程(六):状态栏与属性表实现

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: PyQGIS二次开发指南