本项目是QGIS二次开发系列教程的配套源代码
市面上关于QGIS操作的资料已非常丰富,但系统性地引导开发者进入二次开发领域的中文资源却相对零散。本教程的诞生,正是为了填补这一空白。本教程基于笔者的二次开发经验,与大家一道学习和掌握QGIS二次开发。本教程核心目标在于:
- 构建坚实的认知框架:我们不仅教你“怎么做”,更着重解释“为什么这么做”,帮助你理解QGIS的对象模型与核心架构。
- 遵循渐进的学习路径:教程的设计遵循“由浅入深、螺旋上升”的原则。我们从最简单的示例入手,逐步过渡到图形界面,最终完成综合性的示例项目。
- 全面与深度:本教程涵盖嵌入QGIS程序的python控制台开发、基于PYQGIS的独立应用程序开发以及基于C++的独立应用程序开发,覆盖了QGIS二次开发的多种需求。
- 强调实战与应用:理论唯有通过实践才能内化为技能。因此,每一章都配备了可操作的代码示例,确保你能学以致用。
- 第一部分:入门:我们将帮助你搭建高效的开发环境,并熟悉QGIS Python控制台这个强大的“实验沙盒”,迈出代码驱动的第一步。
- 第二部分:核心概念与基础操作:这是课程的基石。我们将深入探讨QGIS项目的结构、矢量与栅格数据的编程处理方式,让你具备操纵GIS核心要素的能力。
- 第三部分:创建用户界面与自定义工具:从这里开始,我们将从脚本走向应用。你将学习如何使用Qt Designer设计对话框,如何构建标准的QGIS插件,以及如何创建可与Processing框架集成的分析算法,从而将你的代码包装成用户友好的工具。
- 第四部分:基于C++ 的QGIS独立程序开发:在掌握了python开发QGIS的相关知识后,我们将探索基于C++的独立应用程序开发,将此前所学的知识融会贯通,一起创建一个属于你自己的跨平台、高性能的GIS工具。
为了能顺利地跟随本教程学习,我们期望你具备以下基础知识:
- 基本的Python编程能力:熟悉变量、数据类型、函数、循环和条件判断等基础语法,并对面向对象编程(类、对象、方法)有初步了解。
- 对QGIS基本操作的了解:你应该知道如何加载数据、操作图层、进行一些基本的空间查询与分析。这份教程的重点是“开发”,而非“软件操作”。
- 对QT编程有基础的了解:QGIS是基于跨平台的QT GUI框架开发,利用了许多QT的特性与能力。了解QT才能更好的理解本教程的相关内容
- 基本的C++编程能力:如果您需要学习C++开发QGIS的相关知识,那么C++的编程基础是必不可少的。
- 一颗乐于探索与解决问题的热心:开发过程中遇到问题与报错是常态,官方文档、在线社区和你的调试技巧将是你最好的伙伴。
本项目由个人创作,文档和代码全面开源。如果您觉得有所助益,不妨请我喝杯咖啡吧!
