postgis数据源一库多平台共用

作者:Neshoir

PostGIS数据源一库多平台共用

​         作为一枚Giser,应该没有人不会不知道PostGIS吧!众所周知PostGIS是一个主流的开源空间数据库引擎,基于开源数据库PostgreSQL的空间扩展插件。PostGIS提供了丰富的空间数据存储模型、矢量和栅格数据的处理能力、空间分析函数、GIST索引、空间坐标系等特性,具有完善的生态圈。很多开源产品如GeoServer、QGIS均使用了PostGIS,一些商业GIS软件如ArcMap、SuperMap iDesktop均有对接PostGIS,能够使用PostGIS作为空间数据的存储引擎,也支持基于它做一些空间分析。本文将重点介绍如果在多个GIS平台软件里共同使用同一个PostGIS库。

一、软件安装
  • SuperMap iDesktop、ArcMap、PostgreSQL、PostGIS等软件可自行去官网下载及安装。注意:iDesktop 10i对PostgreSQL8.3及以上版本均支持。ArcMap不同版本兼容不同版本的PostgreSQL,比如ArcMap10.8只支持9.6、10、11版本的PostgreSQL。
  • 根据系统和PostgreSQL版本,在ArcMap安装路径的…\DatabaseSupport\PostgreSQL\ … 目录对应st_geometry库拷贝到PostgreSQL安装路径的%PostgreSQL%\lib目录下。
二、创建数据库
  • 创建名称为sde的角色。

    -- 创建名称的sde的角色,赋予创建数据库权限,设置密码。
    CREATE ROLE sde WITH CREATEDB LOGIN PASSWORD 'qaz!123';
    
  • 创建名称为testdb的数据库。

    -- 创建一个数据库,拥有者为sde。
    CREATE DATABASE testdb OWNER sde TABLESPACE pg_default ENCODING 'UTF8';
    
  • 连接上testdb数据库,创建插件和schema。

    -- 创建postgis插件,在postgis 3以下版本,postgis插件包括了矢量和栅格模块,3.+版本把栅格模块独立出来了。
    CREATE EXTENSION postgis;
    -- 创建名称为sde的schema
    CREATE SCHEMA sde 
    

注意: 角色和schema的名称为sde,这是必须的,否则无法在ArcMap中无法将空间数据入库到PostGIS中。

三、SuperMap iDesktop和ArcMap连接PostGIS库
  • iDesktop创建PostGis数据源,以便能支持SuperMap里空间数据模型,如文本数据集、网络数据集、CAD数据集等(SuperMap扩展实现的存储类型,PostGIS本身不支持,只支持点线面类型。),创建后是一个空的数据源。

在这里插入图片描述

  • ArcMap新建PostGIS库链接。

    在这里插入图片描述

  • ArcMap开启并开启"地理数据库功能",以便能支持标注等类型。(ArcMap扩展类型,PostGIS本身不支持)。在PostGIS数据库链接上鼠标右键,点击"开启地理数据库",弹窗后,选择认证文件进行开启。

    在这里插入图片描述

四、通过iDesktop和ArcMap将矢量数据入库到PostGIS库中。
  • iDesktop打开china.udb数据源,将china_r面数据集复制到PostGIS中。

    在这里插入图片描述
    在这里插入图片描述

  • ArcMap链接的数据库刷新,即可。在这里插入图片描述

  • ArcMap中复制gdb下的数据集到PostGIS中。在gdb中选择一个面数据集鼠标右键"复制",然后在PostGIS数据库鼠标右键"粘贴",这时会弹窗参数设置,注意类型选择PG_GEOMETRY。

    在这里插入图片描述

    在这里插入图片描述

  • iDesktop中数据库链接刷新,即可。

    在这里插入图片描述

总结:至此,iDesktop和ArcMap可以共用同一个PostGIS数据库,当然QGIS也可以共用。这样即可解决各个业务系统之家数据共享的问题。iDesktop支持对矢量数据的编辑、修改操作,ArcMap好像不支持,因为不是非SDE引擎不支持编辑。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值