用途:在 PyQGIS 中连接 PostGIS 数据库、加载空间表与视图、执行 SQL、导出图层,并安全管理凭据。
主要能力:QgsDataSourceUri 构建连接 URI(setConnection、setDataSource、setAuthConfigId、setSrid、setWkbType、setUseEstimatedMetadata、setKeyColumn、uri);QgsVectorLayer/QgsRasterLayer 加载矢量与栅格;QgsProviderRegistry 与 QgsAbstractDatabaseProviderConnection 执行 SQL、发现 schema 与表;QgsAuthManager 存储与读取凭据;QgsVectorFileWriter 及 processing.run("native:importintopostgis", {...}) 导出。矢量 provider 为 "postgres",栅格为 "postgresraster"。
用法要点:加载表用 setDataSource(schema, table, geomCol);加载视图或 SQL 查询必须传唯一键列(第 5 个参数);构造图层时用 uri.uri(False) 隐藏凭据;构造后立即检查 layer.isValid()。生产环境用 setAuthConfigId 配合 QgsAuthManager,开发测试才可临时用 user/password。栅格加载通过 encodeUri 配置 mode(0 每行一瓦片、1 每行一层、2 合并全部瓦片)。
限制:不得在 URI 中明文存密码;视图缺唯一键会导致重复要素与性能下降;estimatedmetadata=true 仅返回近似行数,行数需精确时不可用;不得手工拼接 URI 字符串。具体版本与平台要求暂未提供。