SuperAPI AI 工具集

qgis-core-architecture

数据与分析

查看项目

更新于 10-15 22:18

技能介绍

用途:本技能用于创建 QGIS 项目、理解 PyQGIS 架构、推理 QGIS 数据模型,避免把独立脚本与插件初始化方式混用。

主要能力:梳理 QGIS 3.x 核心 Python 模块(qgis.core 负责非 GUI 功能,qgis.gui 提供地图画布等界面组件,qgis.analysis 做空间分析,qgis.server 提供 OGC 服务,qgis._3d 做三维可视化;qgis.utils 与 qgis.PyQt 为辅助模块)。说明图层类层级,包括 QgsVectorLayer、QgsRasterLayer、QgsMeshLayer、QgsPointCloudLayer、QgsAnnotationLayer、QgsVectorTileLayer、QgsTiledSceneLayer,均继承自 QgsMapLayer。介绍项目文件格式(.qgs 为 XML,.qgz 为压缩包,自 3.2 起默认)及 Qt、SIP、PyQt、GDAL/OGR、PROJ、GEOS 等依赖。

使用方式:独立脚本需先 setPrefixPath、QgsApplication([], False)、initQgis,结束时调用 exitQgis;插件或控制台内则无须重复初始化。按数据类型选择图层类与数据提供者(如 ogr、gdal、postgres、memory、wfs、wms 等),创建后立即用 isValid() 校验。后台处理使用 QgsTask,通过信号把结果传回主线程。

适用场景:编写 QGIS 插件、批处理脚本、图层与项目管理、路径解析、图层树分组、信号连接与断开。

限制与注意:项目单例写入非线程安全,禁止在后台线程修改 GUI 或直接向项目添加图层;图层名不唯一,mapLayersByName 返回列表需判空;路径统一使用正斜杠;QGIS 4.0 迁移涉及 QVariant 到 QMetaType、QRegExp 移除等变化。具体安装路径等事实资料暂未提供。