PostgreSQL 是一个免费的对象-关系型数据库。
QGIS和ArcGIS分别是开源和商用GIS中的明星软件。对于想兼顾二者的GISer来说,PostgreSQL 地理数据库可作为沟通二者的桥梁。
PostGIS是为PostgreSQL开发的插件,PostGIS通过向PostgreSQL添加对空间数据类型、空间索引和空间函数的支持,将PostgreSQL数据库转换为PostgreSQL地理数据库。QGIS中PostgreSQL地理数据库的空间类型是PG_Geometry。
ArcGIS中PostgreSQL地理数据库的空间数据类型为ST_Geometry,这种空间数据类型可以兼容PG_Geometry且具有额外的特性。为了创建可在两者中间通用的PostgreSQL 地理数据库,我们创建或导入要素类到数据库时应选择PG_Geometry空间数据类型。
系统环境:Windows10、PostgreSQL10、PostGIS2.5、QGIS3.16、ArcGIS10.7
- 使用 PostGIS 数据库模板创建PostgreSQL地理数据库或在数据库中启用PostGIS拓展
- ArcGIS中运行 创建企业级地理数据库 工具,数据库输入栏指定上一步创建的PostgreSQL地理数据库。这是为了在PostgreSQL地理数据库中创建sde架构,使ArcGIS可以对要素类进行编辑。
- ArcGIS中使用sde用户名连接PostgreSQL地理数据库
- ArcGIS中使用 要素类至要素类 工具时选择PG_Geometry空间数据类型
或者,复制粘贴要素类至PostgreSQL地理数据库时选择PG_Geometry空间数据类型
- ArcGIS对PostgreSQL地理数据库中的要素类启用 注册版本 功能时,勾选 将编辑内容移动到基表。这是为了使ArcGIS中的编辑可以保存在数据源表而非视图中,后者将会导致QGIS中的数据库无法同步更新
- QGIS中创建对应的PostgreSQL地理数据库连接,即可在ArcGIS和QGIS中同步查看和编辑数据。
更新:也可以先在ArcMap中创建企业级地理数据库,再在pgAdmin中为对应的数据库添加postgis扩展。