PyQGIS二次开发指南

宁睿  论坛元老 | 2024-5-18 11:55:45 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 1038|帖子 1038|积分 3124

当你的数据处理使用的是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进行安装。目录结构如下:
  1. .
  2. ├── apps
  3. ├── bin
  4. ├── doc
  5. ├── etc
  6. ├── lib
  7. ├── share
  8. ├── var
  9. ├── main.spec
  10. ├── OSGeo4W.bat
  11. ├── OSGeo4W.ico
  12. └── start_up.bat
复制代码
验证安装

在 Win 中搜索 QGIS,或者找到bin目录下的qgis-bin.exe打开 QGIS 桌面软件,输入Ctrl + Alt + P,打开Python控制台,我们尝试输入一下代码:
  1. from qgis.core import QgsRasterLayer
复制代码
若没有提示报错,说明我们的安装乐成了。
PyCharm情况设置

新建项目pyqgis-se,在System Interpreter中选择 QGIS 安装目录下的bin\python-qgis.bat
结果如下:
情况选择好之后,创建项目
Hello QGIS

在根目录创建入口文件main.py,写入如下代码:
  1. if __name__ == '__main__':
  2.     # 第二个参数为是否启用 GUI
  3.     qgs = QgsApplication([], False)
  4.     # 初始化 QGIS
  5.     qgs.initQgis()
  6.     print(QgsApplication.prefixPath())
  7.     print('Hello Qgis!')
复制代码
运行后,控制台输出如下:
  1. D:/PROGRA~2/QGIS33~1.0/apps/qgis
  2. Hello Qgis!
复制代码
正式开发

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


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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

宁睿

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表