QGIS概述与入门
第一章 QGIS概述与入门
1.1 什么是QGIS
1.1.1 QGIS简介
QGIS(Quantum GIS)是一款功能强大的开源桌面地理信息系统(GIS)软件,由Gary Sherman于2002年创建。作为全球最受欢迎的开源GIS工具之一,QGIS提供了丰富的空间数据查看、编辑、分析和发布功能,可在Windows、macOS、Linux和BSD等多种操作系统上运行。
QGIS是开源地理空间基金会(OSGeo)的官方项目,遵循GNU通用公共许可证(GPL v2+),这意味着用户可以免费使用、修改和分发该软件。截至2024年,QGIS已发展成为一个拥有庞大用户社区和活跃开发团队的成熟项目。
1.1.2 QGIS的发展历史
| 时间 | 版本 | 主要里程碑 |
|---|---|---|
| 2002年 | 初始版本 | Gary Sherman在阿拉斯加开始开发项目 |
| 2009年 | 1.0 | 首个稳定版本发布 |
| 2012年 | 1.8 | 改名为QGIS(从Quantum GIS) |
| 2013年 | 2.0 | 重大架构改进,引入新的API |
| 2018年 | 3.0 | 迁移到Qt5,Python 3支持 |
| 2023年 | 3.28 LTR | 当前长期支持版本 |
| 2024年 | 3.34+ | 持续更新,准备Qt6迁移 |
| 2025年底 | 4.0 计划 | Qt6迁移,主要架构升级 |
1.1.3 QGIS的核心特性
数据格式支持
QGIS支持广泛的空间数据格式:
- 矢量格式:Shapefile、GeoPackage、GeoJSON、KML、MapInfo、SDTS、GML、DXF/DWG等
- 栅格格式:GeoTIFF、JPEG、PNG、ERDAS IMG、ASCII Grid、NetCDF等
- 数据库:PostGIS、Oracle Spatial、MS SQL Spatial、SpatiaLite
- 电子表格:ODS、XLSX(带坐标的表格数据)
- Web服务:WMS、WMTS、WFS、WFS-T、WCS、ArcGIS REST等
核心功能
- 数据可视化:2D/3D地图显示、丰富的符号化选项、标注引擎
- 数据编辑:矢量数据数字化、属性编辑、地理配准
- 空间分析:地理处理工具、空间统计、网络分析、水文分析
- 地图制图:布局设计器、地图册生成、打印输出
- 扩展性:Python插件、Processing工具箱、自定义工具
1.2 QGIS与其他GIS软件的比较
1.2.1 QGIS vs ArcGIS
| 特性 | QGIS | ArcGIS Pro |
|---|---|---|
| 许可证 | 开源免费(GPL) | 商业授权 |
| 价格 | 免费 | 年费约$100-$20,000+ |
| 平台支持 | Windows/Mac/Linux | 仅Windows |
| 数据格式 | 广泛支持 | 广泛支持 |
| 扩展性 | Python插件 | Python/ArcPy |
| 学习曲线 | 中等 | 中等到陡峭 |
| 企业支持 | 社区+商业服务 | 官方支持 |
| 更新频率 | 每年3个版本 | 定期更新 |
1.2.2 QGIS vs MapInfo
| 特性 | QGIS | MapInfo Pro |
|---|---|---|
| 许可证 | 开源免费 | 商业授权 |
| 定价 | 免费 | 按用户许可 |
| 数据格式 | 广泛支持 | 主要支持TAB |
| 3D支持 | 内置3D视图 | 有限 |
| Python支持 | 完整PyQGIS | MapBasic |
| 社区 | 活跃的全球社区 | 较小用户群 |
1.2.3 QGIS vs GRASS GIS
| 特性 | QGIS | GRASS GIS |
|---|---|---|
| 定位 | 桌面GIS | 分析引擎 |
| 用户界面 | 图形化GUI | 命令行+GUI |
| 易用性 | 易于上手 | 学习曲线陡峭 |
| 分析能力 | 通过集成增强 | 非常强大 |
| 集成 | 可嵌入GRASS | 独立运行 |
重要提示:QGIS可以无缝集成GRASS GIS的分析功能,用户可以在QGIS中直接调用GRASS的算法,获得两者的优势。
1.2.4 为什么选择QGIS
- 零成本:完全免费,无许可费用
- 跨平台:Windows、Mac、Linux都可使用
- 开放标准:完整支持OGC标准
- 活跃社区:大量插件、教程和支持资源
- 持续发展:定期更新,不断添加新功能
- 可定制:Python脚本和插件扩展
- 商业支持可选:有商业服务提供商
1.3 QGIS的应用场景
1.3.1 城市规划与管理
QGIS在城市规划领域广泛应用:
- 土地利用分析:分析土地类型分布、变化趋势
- 基础设施规划:道路、管线、公共设施规划
- 城市增长模拟:模拟和预测城市扩张
- 公共服务分析:学校、医院、消防站覆盖范围分析
案例示例:
# 使用QGIS进行服务区分析
1. 加载道路网络数据
2. 标记服务设施点(如医院)
3. 使用网络分析计算服务区
4. 可视化服务覆盖范围
5. 识别服务空白区域
1.3.2 环境监测与保护
- 生态廊道分析:识别和保护野生动物迁徙通道
- 森林变化监测:利用多时相遥感数据分析森林覆盖变化
- 水资源管理:流域分析、水质监测站点规划
- 空气质量分析:污染源分布、扩散模拟
1.3.3 农业与林业
- 精准农业:作物分布、产量分析、灌溉规划
- 土壤制图:土壤类型分布、肥力分析
- 林业管理:林班规划、采伐设计、病虫害监测
- 农作物估产:结合遥感数据进行产量估算
1.3.4 交通运输
- 路网分析:最短路径、服务区域、可达性分析
- 公共交通规划:线路优化、站点选址
- 交通流量分析:热点识别、拥堵分析
- 物流配送:配送路线优化、仓库选址
1.3.5 灾害管理
- 风险评估:洪水、地震、滑坡风险区划
- 应急响应:疏散路线规划、避难点选址
- 灾后评估:损失统计、重建规划
- 预警系统:监测点布设、预警信息发布
1.3.6 考古与文化遗产
- 遗址管理:考古遗址数据库管理
- 空间分析:遗址分布模式分析
- 三维重建:历史景观可视化
- 保护规划:缓冲区划定、保护策略制定
1.3.7 商业应用
- 选址分析:商铺、加油站、餐厅选址
- 市场分析:客户分布、市场覆盖
- 房地产分析:价格空间分布、区位评估
- 保险风险评估:自然灾害风险区划
1.4 QGIS生态系统
1.4.1 核心组件
QGIS生态系统包含多个相关项目:
QGIS Desktop
主要的桌面应用程序,提供完整的GIS功能。
QGIS Server
基于相同核心库的地图服务器,支持WMS、WFS、WCS等OGC标准服务发布。
QGIS Web Client (QWC)
基于Web的客户端应用,用于发布和共享QGIS项目。
QField
为Android和iOS设计的移动GIS应用,用于野外数据采集。
QGIS for 3D
内置3D地图视图,支持地形可视化和3D数据展示。
1.4.2 插件生态
QGIS拥有丰富的插件生态系统,官方插件仓库包含超过500个插件:
热门插件类别:
- 数据导入/导出
- 空间分析
- 地理编码
- Web服务访问
- 样式和符号化
- CAD工具
- 遥感处理
- 机器学习
获取插件:
菜单路径:插件 → 管理和安装插件
1.4.3 相关开源项目
QGIS与许多其他开源项目紧密集成:
- GDAL/OGR:数据读写引擎
- PROJ:坐标转换库
- GEOS:几何运算引擎
- GRASS GIS:高级分析功能
- SAGA GIS:地形分析工具
- PostgreSQL/PostGIS:空间数据库
- GeoServer:Web地图服务器
- OpenLayers/Leaflet:Web地图库
1.4.4 社区与支持
官方资源:
- 官方网站:https://qgis.org
- 文档:https://docs.qgis.org
- 插件仓库:https://plugins.qgis.org
- GitHub仓库:https://github.com/qgis/QGIS
社区支持:
- 邮件列表:qgis-user@lists.osgeo.org
- Stack Exchange:gis.stackexchange.com
- Reddit:r/QGIS
- 社区论坛:多语言支持
商业支持:
多家公司提供QGIS的商业支持和咨询服务,包括:
- Kartoza(南非)
- OpenGIS.ch(瑞士)
- LutraConsulting(英国)
- North Road(澳大利亚)
1.5 QGIS版本与发布策略
1.5.1 版本命名规则
QGIS采用语义化版本号:主版本.次版本.补丁版本
例如:QGIS 3.34.1
- 3 = 主版本(重大架构变更)
- 34 = 次版本(功能更新)
- 1 = 补丁版本(Bug修复)
1.5.2 发布周期
QGIS每年发布三个版本:
- 2月:.X 版本
- 6月:.X+4 版本
- 10月:.X+8 版本(成为下一年的LTR)
每个偶数版本号的发布会在下一年成为长期支持版本(LTR)。
1.5.3 版本选择建议
| 用户类型 | 推荐版本 | 原因 |
|---|---|---|
| 生产环境 | LTR版本 | 稳定性优先,长期支持 |
| 开发者 | 最新版本 | 最新功能和API |
| 学习者 | 最新版本 | 跟随最新教程 |
| 企业用户 | LTR版本 | 兼容性和稳定性 |
1.5.4 当前版本状态(2024年)
| 版本 | 状态 | 备注 |
|---|---|---|
| 3.28.x | LTR | 长期支持版本 |
| 3.32.x | 过渡版本 | 包含新功能 |
| 3.34.x | 最新版本 | 将成为下一个LTR |
1.6 学习路径推荐
1.6.1 初学者路径
-
第一周:基础操作
- 安装QGIS
- 了解界面布局
- 加载和浏览数据
- 基本地图导航
-
第二周:数据管理
- 了解矢量和栅格数据
- 数据导入导出
- 属性表操作
- 数据格式转换
-
第三周:地图制作
- 符号化和样式设置
- 标注配置
- 打印布局设计
- 地图输出
-
第四周:空间分析入门
- 基本地理处理工具
- 缓冲区分析
- 叠加分析
- 空间查询
1.6.2 进阶路径
-
空间分析进阶
- 网络分析
- 地形分析
- 水文分析
- 栅格计算
-
数据库集成
- PostGIS数据库
- 空间SQL查询
- 数据库驱动的GIS
-
自动化与编程
- Python控制台
- PyQGIS基础
- 处理脚本
- 批处理操作
-
高级功能
- 3D可视化
- 时态数据
- 点云处理
- Mesh数据
1.6.3 开发者路径
-
PyQGIS入门
- Python环境配置
- QGIS Python API
- 脚本开发
-
插件开发
- 插件结构
- Qt界面设计
- 发布到官方仓库
-
Processing算法开发
- 自定义处理工具
- 参数和输出定义
- 批处理支持
-
核心开发
- C++开发环境
- QGIS架构理解
- 贡献代码
1.7 学习资源
1.7.1 官方资源
- QGIS用户手册:https://docs.qgis.org/latest/en/docs/user_manual/
- 培训手册:https://docs.qgis.org/latest/en/docs/training_manual/
- PyQGIS开发者手册:https://docs.qgis.org/latest/en/docs/pyqgis_developer_cookbook/
1.7.2 在线课程
- Spatial Thoughts课程:https://courses.spatialthoughts.com
- Udemy QGIS课程:多种语言和难度
- YouTube教程:大量免费视频教程
1.7.3 书籍推荐
- 《QGIS Map Design》(Anita Graser & Gretchen Peterson)
- 《Learn QGIS》(Packt Publishing系列)
- 《Mastering QGIS》(Kurt Menke等)
1.7.4 中文资源
- QGIS中文用户组
- OSGeo中国中心
- 各高校GIS课程资料
- 中文技术博客
1.8 本教程结构
本教程共20章,涵盖QGIS的各个方面:
| 章节 | 主题 | 难度 |
|---|---|---|
| 01 | QGIS概述与入门 | ⭐ |
| 02 | 安装与环境配置 | ⭐ |
| 03 | 核心架构与模块设计 | ⭐⭐ |
| 04 | 用户界面详解 | ⭐ |
| 05 | 数据源管理与加载 | ⭐ |
| 06 | 矢量数据处理 | ⭐⭐ |
| 07 | 栅格数据处理 | ⭐⭐ |
| 08 | 坐标参考系统与投影 | ⭐⭐ |
| 09 | 地图样式与符号化 | ⭐⭐ |
| 10 | 空间分析工具 | ⭐⭐⭐ |
| 11 | 地图布局与打印 | ⭐⭐ |
| 12 | 数据编辑与数字化 | ⭐⭐ |
| 13 | Processing工具箱 | ⭐⭐⭐ |
| 14 | Python开发与PyQGIS | ⭐⭐⭐ |
| 15 | 插件开发指南 | ⭐⭐⭐⭐ |
| 16 | 数据库集成 | ⭐⭐⭐ |
| 17 | Web服务与OGC标准 | ⭐⭐⭐ |
| 18 | 高级功能与扩展 | ⭐⭐⭐⭐ |
| 19 | 性能优化与最佳实践 | ⭐⭐⭐ |
| 20 | 实战案例与项目应用 | ⭐⭐⭐ |
难度说明:
- ⭐ 入门级
- ⭐⭐ 基础级
- ⭐⭐⭐ 进阶级
- ⭐⭐⭐⭐ 高级
1.9 小结
本章介绍了QGIS的基本概念、发展历史和核心特性。作为一款开源免费的GIS软件,QGIS提供了与商业软件相当的功能,适用于各种GIS应用场景。
关键要点:
- QGIS是开源免费的桌面GIS软件
- 支持广泛的数据格式和OGC标准
- 拥有活跃的社区和丰富的插件生态
- 可通过Python进行扩展和自动化
- 适用于个人学习和企业生产环境
下一章将详细介绍QGIS的安装和环境配置,帮助您快速搭建QGIS工作环境。
下一章:第02章 安装与环境配置

浙公网安备 33010602011771号