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