内容提要
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数据库,以便团队共享和访问。