乐于分享
好东西不私藏

QGIS 插件 01:导入| 常用插件 | 开发准备

QGIS 插件 01:导入| 常用插件 | 开发准备
⭐ 本文演示版本:QGIS 3.40.14(LTR)⭐
📌 往期回顾
地图神器QGIS,到底是个啥? | 从不懂到懂一点点
QGIS 新手不懵圈 02:界面认路与数据加载
这期我们聊聊QGIS的插件。插件是个性化的神,可以下载别人的,也能自己写。以下我从安装、典型插件、开发需要准备的文件三点展开。

一、插件导入📦
QGIS 的生态之所以强大,很大程度上得益于它的插件系统。你可以下载别人写好的插件直接使用,也可以自己动手写——这也是我们后续「插件开发」主线要展开的内容。
导入插件有两种途径:官方插件库在线安装 和 本地安装包导入。

▸方式一:官方插件库

【插件】→【管理并安装插件】 → 切换到 【ALL】 标签页 → 在搜索框输入插件名称 → 点击右下角 【安装】

安装完成后,切换到 【Installed】 标签页即可看到已安装的插件列表。

💡注意:插件需要勾选才会生效不勾选相当于处于禁用状态。

方式二:本地安装包

如果你有第三方的插件压缩包(.zip)或已经解压好的文件夹,可以通过 【插件】→【管理并安装插件】 → 切换到 【从ZIP安装】标签页,选择文件导入。

安装后,插件的底层代码会存放在 QGIS 的本地插件目录中。这些代码是完全可见且可编辑的——也就是说,如果某个插件某个功能不合你意,你完全可以打开它的源文件,直接上手修改。这也是开源工具的一大魅力。


二、常用插件推荐🔧

▸1. Plugin Reloader(插件开发必备)

适用场景:插件开发。

修改完插件代码后,传统做法是需要重启 QGIS 才能让改动生效,非常低效。Plugin Reloader 可以一键刷新插件,修改完代码后点一下即可加载最新版本,省去了反复重启软件的步骤。写插件的时候有这个插件,体验提升不止一个档次。

2. QuickMapServices(快速加载底图)

适用场景:需要快速加载在线底图作为参考。(需要网速加持!)

不用费心去找各种地图服务的 URL 地址,QuickMapServices 把 Google、Bing、OpenStreetMap、ESRI 等常见底图服务打包在一起,点击即可加载。

关键操作:
  • 直接通过 网页 → QuickMapServices 选择底图。
  • 在设置 → 更多服务 中获取 Contributed pack,可解锁海量图源。
  • 使用 搜索 QMS 可按当前视图范围或关键词筛选底图。
组合技:配合下面要说的 QuickOSM,在底图上直接叠加 OpenStreetMap 的矢量数据,做城市分析、路网提取非常方便。

▸3. QuickOSM(开源地图数据下载)

适用场景:需要从 OpenStreetMap 下载矢量数据(道路、建筑、水系、POI 等)。

OpenStreetMap 是一个全球性的开源地图数据库,但直接从官网下载数据需要经历“选区域→导出→转换格式”的繁琐流程。QuickOSM 把这个过程压缩到了几个点击:

  • 在 QGIS 画布上框选一个区域(或直接使用当前视图范围);

  • 选择你想要的数据类型(道路、建筑、绿地、水系……);

  • 点击运行,数据自动加载到画布上,直接就是矢量图层(.shp 或 .gpkg),无需任何转换。

对于拿不到本地矢量数据、又想快速获取某区域基础地理信息的场景来说,这个插件几乎是救命稻草。国外数据覆盖率很高,国内大城市也有不错的数据基础,做研究区概况图的时候经常能用上。

▸4. 拓扑检查器

拓扑检查器关注的是要素与要素之间的“邻里”关系——比如点是否恰好落在线上、多边形之间有没有重叠或缝隙。

它通过配置多种拓扑规则来筛选不合格的要素:

操作流程:配置规则 → 点击最左边的“√”运行检查 → 错误在画布中高亮显示

特点只检测,不自动修复。工具只负责“指认现场”,具体怎么改需要你手动编辑要素。这一点和下面要说的几何图形检查器不同。

▸5. 几何图形检查器

几何图形检查器关注的是单个要素自身的几何结构是否“健康”——比如一个多边形有没有自相交、有没有重复节点。

能查出哪些错?

错误类型
说明
自相交
多边形自己跟自己“打架”,产生了交叉
重复节点
线段上有两个完全重合的点
空洞/缝隙
多边形内部有不该有的空洞,或相邻多边形之间没贴紧
碎片多边形
面积小但周长长的细长条多边形,通常是数据质量差造成的
重复要素
两个完全一样的要素同时存在
重叠
两个多边形不该叠在一起,却有一部分区域重合了
线段过短或夹角过小
可自定义阈值,找出不达标的线段

支持修复错误 ✅

和拓扑检查器的区别

对比维度
几何图形检查器
拓扑检查器
核心目标
检查并修复单个要素的几何有效性
检测
多个要素间的空间关系是否符合规则
关注对象
单个要素自身的“健康”状况
要素之间的“邻里”关系
能否自动修复
✅ 可以自动修复多种几何错误
❌ 只标记错误位置,需手动编辑
典型错误
自相交、重复节点、狭长面、重复要素
悬挂线、伪节点、重叠、间隙、包含关系错误
输出结果
生成新图层(checked_前缀)列出错误并提供修复方案
在面板中列出错误,画布高亮显示

⚠️容易踩的一个坑

运行几何图形检查器时,如果提示“选中的输出目录里含有某些输入图层”,意思是:这个工具运行后会生成一个修复后的新图层,默认存到指定的“输出目录”。如果你选的目录恰好也是输入图层原本所在的文件夹,QGIS 怕覆盖原文件,就会报错拦住你。

解决办法:换一个输出目录。

三、插件开发入门🧩

如果你已经用熟了别人的插件,但发现总有些需求是现有插件满足不了的——那就到了“自己动手写”的阶段了。

▸ 我把插件开发分为两种类型:“插件菜单”版 和 “工具箱”版

它们的区别如下:

特性
“插件菜单”插件
“工具箱”插件
入口位置
顶部菜单栏的【插件】菜单下
【处理】→【工具箱】面板中
用户界面
高度自定义
,通过 Qt Designer 设计
标准化
,由 QGIS 处理框架自动生成
主要用途
实现复杂的、交互式的、需要独特界面的 GIS 工具
提供可复用的数据处理算法,便于集成到模型或批量处理中
集成能力
功能相对独立,不易被其他流程调用
可被建模器批量处理直接调用,复用性强
“插件菜单”插件👇
“工具箱”插件👇
💡 很难说哪个更好看,取决于大家的需求吧。我建议简单的功能用“工具箱”插件,复杂的用“插件菜单”插件。

▸ 文件结构对比

菜单插件(带 UI) :

my_menu_plugin/ 
├── __init__.py 
├── metadata.txt          # 元数据 
├── my_menu_plugin.py # 主逻辑:1.处理UI与算法的交互 2.挂接插件界面
├── ui/     
    ├── my_menu_plugin_dialog.py # UI逻辑封装     
    └── my_menu_plugin_dialog.ui # UI设计文件 (Qt Designer)
工具箱插件(Processing Provider) :
my_toolbox_plugin/ 
├── __init__.py 
├── metadata.txt          # 元数据 (包含hasProcessingProvider=True)
├── provider.py          # 主逻辑:1.注册类 2.算法类 
└── algorithms           # 测试算法:provider可调用
▸ 核心文件对比
文件/目录
“菜单插件”
“工具箱插件”
主逻辑文件
your_plugin.py
(打开对话框、连接按钮信号等)
your_plugin.py
(核心是定义算法类)
界面文件
dialog.ui无单独的 UI 文件
(界面由 QGIS 根据参数自动生成)
算法定义文件
algorithms/ 目录
元数据文件
metadata.txtmetadata.txt(需声明 Provider)

关于插件开发,后面会有专门的文章从头到尾写一遍,从环境配置到发布插件,一步步带大家走通。


小   结📝

这一篇我们覆盖了 QGIS 插件的三大块内容:

  • 怎么安装:官方库 + 本地包;

  • 好用插件:Plugin Reloader、QuickMapServices、QuickOSM、拓扑检查器、几何图形检查器;

  • 开发插件需要准备什么:菜单版 vs 工具箱版及其文件结构。

🔜暂定插件系列的内容会围绕“好用插件介绍”、“自定义插件开发”展开🕳️

官方教程指路https://docs.qgis.org/testing/en/docs/training_manual/index.html