博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
postgis数据源一库多平台共用
阅读量:4163 次
发布时间:2019-05-26

本文共 1675 字,大约阅读时间需要 5 分钟。

作者: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的schemaCREATE 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引擎不支持编辑。

转载地址:http://xipxi.baihongyu.com/

你可能感兴趣的文章
quartz整合springboot实现动态配置任务的CRUD详情操作
查看>>
docker中通过docker-compose安装GitLab中文社区版以及优化设置
查看>>
Mbatis-Plus整合springboot详细学习笔记
查看>>
Mybatis-Plus进阶之扩展插件
查看>>
centos 7 阿里云安装ftp服务以及创建用户
查看>>
业务规范之springboot整合swagger2
查看>>
业务规范之统一验证
查看>>
业务规范之统一返回体
查看>>
业务规范之统一异常处理和统一响应
查看>>
docker安装mongodb开启权限认证以及mongodb数据定时脚本备份与恢复
查看>>
SSH免密登录,实现A服务器免密登录B服务器
查看>>
docker安装mongodb开启权限认证以及mongodb数据定时脚本备份与恢复
查看>>
linux中定时任务,定时删除某天之前的文件
查看>>
定时任务定时备份docker中mysql并将数据自动保存到另外一台服务器
查看>>
Java图形可视化工具graphviz-java
查看>>
docker中镜像的备份与迁移详细过程
查看>>
springboot2.0整合redis缓存注解
查看>>
spring中条件注解的使用 @Conditional
查看>>
Java基于JDK实现动态代理
查看>>
spring中Aware 接口 感知捕获
查看>>