伊丽莎白·加勒特·克里斯滕森:连接QGIS到Postgres和PostGIS

伊丽莎白·加勒特·克里斯滕森:连接QGIS到Postgres和PostGIS

💡 原文英文,约1000词,阅读约需4分钟。
📝

内容提要

QGIS是一个开源的地理信息系统,用于制作地图,并与Postgres和PostGIS集成。连接QGIS到Postgres需要提供数据库主机、登录和密码信息。可以使用QGIS将空间数据加载到Postgres和PostGIS中,并在QGIS中执行SQL查询。还可以创建基于查询结果的图层和保存查询结果为视图。可以将QGIS项目保存到Postgres数据库中,以便团队共享。

🔎

延伸解读

密码安全:明文存储的风险与加密方案

QGIS默认将数据库密码以明文形式保存在文件中。对于本地测试数据库,这可能不是大问题;但如果连接的是多人共享的生产数据库,明文存储会带来安全风险。QGIS提供了主密码加密功能,可以在PostgreSQL连接设置中创建主密码,将数据库凭证加密存储,只有输入主密码才能解密使用。建议在生产环境中启用此功能。

数据导入的常见警告与修复方法

将空间数据导入Postgres时,QGIS可能提示缺少空间参考ID、几何列或主键。缺少SRID时,可默认使用4326,并通过SQL查询或更新;缺少几何列时,可新建几何列并转换数据;缺少主键时,若已有唯一列可添加主键索引,否则需先整理数据。这些警告提示数据不符合PostGIS规范,修复后才能正常使用。

SQL查询与视图:灵活处理大数据集

QGIS允许直接编写SQL查询,并将结果作为空间几何体查看或保存为图层。还可以将查询保存为数据库视图,便于在QGIS项目中重复使用。当QGIS地图只使用大数据集的一小部分时,使用视图可以避免加载全部数据,提升性能。注意,SQL查询图层会叠加在基础地图之上,需确保图层顺序正确才能显示。

团队协作:将QGIS项目保存到Postgres

QGIS支持将项目文件保存到Postgres数据库,通过“项目”菜单下的“保存到”选项实现。这样做的好处是方便团队共享项目,避免项目文件仅存储在本地。如果多人需要访问同一项目,或者不希望依赖本地文件,可以考虑此方式。但需确保数据库连接稳定,并注意权限管理。

❓

Q&A

如何将QGIS连接到Postgres数据库?

连接QGIS到Postgres需要提供数据库主机、登录和密码信息,可以通过QGIS的浏览器选项添加新连接。

QGIS支持加载哪些类型的空间数据?

QGIS支持加载多种空间数据类型,包括shapefile、GeoJSON和csv文件。

在QGIS中如何处理SQL查询?

可以直接在QGIS中编写SQL查询,并将结果作为空间几何体查看,支持保存查询以备后用。

如何在QGIS中保存查询结果?

可以将查询结果保存为视图,以便在QGIS项目中使用,适合处理较大数据集的子集。

QGIS如何处理缺少空间参考ID的问题?

QGIS会发出警告,用户可以通过SQL查询设置默认的空间参考ID,例如使用4326。

如何在QGIS中保存项目到Postgres数据库?

可以通过项目菜单中的保存选项将QGIS项目保存到Postgres数据库,以便团队共享和访问。

🏷️

标签

➡️

继续阅读