postgis数据源一库多平台共用

2024-02-25 08:58

本文主要是介绍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引擎不支持编辑。

这篇关于postgis数据源一库多平台共用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/745002

相关文章

Spring Boot配置和使用两个数据源的实现步骤

《SpringBoot配置和使用两个数据源的实现步骤》本文详解SpringBoot配置双数据源方法,包含配置文件设置、Bean创建、事务管理器配置及@Qualifier注解使用,强调主数据源标记、代... 目录Spring Boot配置和使用两个数据源技术背景实现步骤1. 配置数据源信息2. 创建数据源Be

Linux之platform平台设备驱动详解

《Linux之platform平台设备驱动详解》Linux设备驱动模型中,Platform总线作为虚拟总线统一管理无物理总线依赖的嵌入式设备,通过platform_driver和platform_de... 目录platform驱动注册platform设备注册设备树Platform驱动和设备的关系总结在 l

Spring Boot集成Druid实现数据源管理与监控的详细步骤

《SpringBoot集成Druid实现数据源管理与监控的详细步骤》本文介绍如何在SpringBoot项目中集成Druid数据库连接池,包括环境搭建、Maven依赖配置、SpringBoot配置文件... 目录1. 引言1.1 环境准备1.2 Druid介绍2. 配置Druid连接池3. 查看Druid监控

在Java中基于Geotools对PostGIS数据库的空间查询实践教程

《在Java中基于Geotools对PostGIS数据库的空间查询实践教程》本文将深入探讨这一实践,从连接配置到复杂空间查询操作,包括点查询、区域范围查询以及空间关系判断等,全方位展示如何在Java环... 目录前言一、相关技术背景介绍1、评价对象AOI2、数据处理流程二、对AOI空间范围查询实践1、空间查

在.NET平台使用C#为PDF添加各种类型的表单域的方法

《在.NET平台使用C#为PDF添加各种类型的表单域的方法》在日常办公系统开发中,涉及PDF处理相关的开发时,生成可填写的PDF表单是一种常见需求,与静态PDF不同,带有**表单域的文档支持用户直接在... 目录引言使用 PdfTextBoxField 添加文本输入域使用 PdfComboBoxField

SpringBoot多数据源配置完整指南

《SpringBoot多数据源配置完整指南》在复杂的企业应用中,经常需要连接多个数据库,SpringBoot提供了灵活的多数据源配置方式,以下是详细的实现方案,需要的朋友可以参考下... 目录一、基础多数据源配置1. 添加依赖2. 配置多个数据源3. 配置数据源Bean二、JPA多数据源配置1. 配置主数据

深入理解Apache Kafka(分布式流处理平台)

《深入理解ApacheKafka(分布式流处理平台)》ApacheKafka作为现代分布式系统中的核心中间件,为构建高吞吐量、低延迟的数据管道提供了强大支持,本文将深入探讨Kafka的核心概念、架构... 目录引言一、Apache Kafka概述1.1 什么是Kafka?1.2 Kafka的核心概念二、Ka

在Android平台上实现消息推送功能

《在Android平台上实现消息推送功能》随着移动互联网应用的飞速发展,消息推送已成为移动应用中不可或缺的功能,在Android平台上,实现消息推送涉及到服务端的消息发送、客户端的消息接收、通知渠道(... 目录一、项目概述二、相关知识介绍2.1 消息推送的基本原理2.2 Firebase Cloud Me

SpringBoot利用dynamic-datasource-spring-boot-starter解决多数据源问题

《SpringBoot利用dynamic-datasource-spring-boot-starter解决多数据源问题》dynamic-datasource-spring-boot-starter是一... 目录概要整体架构构想操作步骤创建数据源切换数据源后续问题小结概要自己闲暇时间想实现一个多租户平台,

nginx配置多域名共用服务器80端口

《nginx配置多域名共用服务器80端口》本文主要介绍了配置Nginx.conf文件,使得同一台服务器上的服务程序能够根据域名分发到相应的端口进行处理,从而实现用户通过abc.com或xyz.com直... 多个域名,比如两个域名,这两个域名其实共用一台服务器(意味着域名解析到同一个IP),一个域名为abc