ArcGIS连接Postgres 数据库

此前在使用ArcGIS的过程中,一般使用文件方式对数据进行管理,后面也有使用 GeoDatabase 数据库对数据进行管理,但是这种管理方式也存在一些弊端,特别是在数据传输与共享方面,非常的不方便。 ArcGIS Spatial Database Engine(SDE)是一种空间数据引擎,通过这个中间件能够使得传统的DBMS数据库能够存储和管理空间数据。这种空间数据库的管理主要有如下优势:

  • 便于数据的传输与共享

    只要是在同一个局域网内的用户,通过对空间数据库的连接,便可以对数据进行查看、编辑,实现了数据共享

  • 便于数据的处理

    ArcGIS SDE 的这个空间扩展提供了很多的空间查询与分析的空间函数,可以使用SQL语句对数据库中的数据进行查询、处理、

    分析,大大提高了工作效率

常用的主流数据库如 Oracle , SQL server ,Postgres SQL 均可以通过SDE和ArcGIS建立联系,实现对空间数据的储存和管理,这里以Postgres数据库为例。

系统环境: windows 10

软件环境:

  • ArcGIS 10.4.1
  • Postgres 9.4

步骤

安装相关软件环境

这里的ArcGIS 和Postgres版本必须要对应,例如,我的ArcGIS 10.4版本就只能支持Postgres 9.2-9.4版本

ST_Geometry.dll拷贝到相应的数据库位置

这里ST_Geometry.dll文件位于一般位于ArcGIS Desktop\Server 的安装目录下面

C:\Program Files (x86)\ArcGIS\Desktop10.1\DatabaseSupport\PostgreSQL\Windows64

数据库的位置这里是指Postgres的安装目录

D:\Program Files\PostgreSQL\9.4\lib

ArcGIS 中创建地理数据库

工具:【Data Management Tools】->【GeoDatabase Administration】->【Create Enterprise GeoDatabase】

创建好数据库后,即可在数据库中查看,可以看到数据库中多了一个 sde的数据库,这个就是刚刚新创建的空间

连接新的空间数据库

创建完空间数据库后,还需要在ArcGIS中对空间数据进行连接,才能对空间数据库进行查看、编辑

连接数据库主要是在ArcGIS Catalog中进行 ,具体地址为:【Database Connections】->【Add Database Connections】

点击OK,即可完成连接,连接完成后,便可像处理文件夹或者本地的GeoDatabase数据库那样对数据进行处理。

常见问题

创建要素失败

postgresql中创建要素类提示

 Database user name and current user schema do not match

解决方式: 用户使用的是postgres用户来连接SDE,这样可以连接但是创建不了要素类,必须使用sde

参考文章

  1. http://blog.sina.com.cn/s/blog_54b09dc90101f3vm.html

ArcGIS连接Postgres 数据库的更多相关文章

  1. pgadmin(IDE)工具连接postgres数据库

    1. 下载软件        软件地址:http://www.pgadmin.org/download/pgagent.php   2.安装软件    安装过程:略    打开软件64位会出现  “无 ...

  2. arcgis连接Oracle数据库

    arcgis连接Oracle数据库 配置声明:本人的电脑是win10 64位,安装的Oracle是oracleR11gr2 64  arcgis版本位10.2 安装是在同一台电脑上. 一.首先是安装O ...

  3. Actix-web Rust连接Postgres数据库

    Actix-web Rust连接Postgres数据库 ​ Rust1.39支持了异步async,await,Actix-web在2.0.0-alpha支持了原生异步写法,所以本文中使用的Actix- ...

  4. 从ArcGIS连接Oracle数据库,并将Oracle数据库注册到ArcGIS Server

    环境说明 客户端机器环境: ① Win7 SP1 64位 ② ArcGIS Desktop 10.2 32位 ③ ArcGIS Server 10.2 64位 服务器环境 ① Windows Serv ...

  5. shell编程连接postgres数据库(数据备份)

    第一步:通过xshell或者其他工具连接到linux服务, 第二步:创建一个脚本:touch se.sh 第三步:输入i,代表开始输入内容 输入以下命令: 脚本如下:(sql语句可以是任何复杂的sql ...

  6. kaili 2.0 metasploit连接postgres数据库

    第一步:使用命令 db_init 初始化数据库

  7. Metasploit连接postgres数据库

    操作环境为Kali虚拟机 root@kali:~# apt-get install postgresql 启动服务 root@kali:~# service postgresql start [ ok ...

  8. kali 2.0中msf连接postgres数据库

    装好kali 2.0后直接运行msfconsole msf> db_status postgres selected, no connection 百度到的解决方法多是针对BT和kali 1.0 ...

  9. arcgis连接oracle发布服务,提示数据未注册到服务器,手动注册服务器失败

    arcgis连接oracle数据库发布服务时候,分析之后提示:数据未注册到服务器上. 手动注册之后提示:数据客户端没有正确配置.实际上数据库客户端已经安装完成也可以使用. 设置 PATH 环境变量(仅 ...

随机推荐

  1. Visual Lab Online —— Alpha版本发布声明

    Visual Lab Online -- Alpha版本发布声明 项目 内容 班级:北航2020春软件工程 博客园班级博客 作业:Alpha阶段发布声明 发布声明 目录 Visual Lab Onli ...

  2. [面向对象之继承应用(在子类派生重用父类功能(super),继承实现原理(继承顺序、菱形问题、继承原理、Mixins机制),组合]

    [面向对象之继承应用(在子类派生重用父类功能(super),继承实现原理(继承顺序.菱形问题.继承原理.Mixins机制),组合] 继承应用 类与类之间的继承指的是什么'是'什么的关系(比如人类,猪类 ...

  3. C++基于armadillo im2col的实现

    最近学习CNN,需要用到im2col这个函数,无奈网上没有多少使用armadillo的例子,而且armadillo库中似乎也没有这个函数,因此自己写了. im2col的原理网上一大把,我懒得写了. 1 ...

  4. [算法] 单链表插入排序(java)

    实现 首先保证插入前的链表是个完整的,最后一个节点要断开 然后在插入前链表中找到比待插入节点大的最小元素,插到前面即可 Link.java class Link { private class Nod ...

  5. [bug] httpd服务启动问题

    参考 httpd服务器启动失败 https://www.cnblogs.com/Crazy-Liu/p/11550824.html Apache-httpd服务器启动成功网页却不能访问 https:/ ...

  6. 更换介质:请把标有Debian ... 的盘片插入驱动器

    Debian安装软件报错如下: 更换介质:请把标有 "Debian GNU/Linux 10.8.0 _Buster_ - Official amd64 DVD Binary-1 20210 ...

  7. 043.Python线程基本介绍

    一 线程的基本概念 1.1 进程和线程 进程是资源分配的最小单位 线程是计算机中调度的最小单位 进程池: 开启过多的进程并不一走提高你的效率, 如果cp负载任务过多,平均单个任务执行的效率就会低,反而 ...

  8. ELK学习实验020:ELK使用kafka缓存

    首先安装一个kafka集群,但是zookeeper使用单节点,可以让kafka快速跑起来,后续再研究kafka和zokkeeper的集群 1 安装Kafka集群 下面是三个节点都要做 [root@no ...

  9. 云计算OpenStack---虚拟机获取不到ip(12)

    一.现象描述 openstack平台中创建虚拟机后,虚拟机在web页面中显示获取到了ip,但是打开虚拟机控制台后查看网络状态,虚拟机没有ip地址,下图为故障截图: 二.分析 1.查看neutron服务 ...

  10. Redis 为什么使用跳跃表

    引言 跳跃表是一种有序的数据结构,它通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的. 什么是跳跃表 对于一个单链表来讲,即便链表中存储的数据是有序的,如果我们要想在其中查找某个 ...