Wechat: yu389741| Email: gisdqy@163.com

Shop:https://www.giserdqy.com/shop

arcgis10.2导入数据到postgresql9.1


1、安装环境,安装postgresql+postgis(空间数据库插件),64位;

2、安装arcgis desktop+arcgis server (10.2),这里需要注意的是:desktop的应用是32位,server是64位版本,记下来,备用;

3、将arcgis安装目录下(desktop10.2/databasesupport/postgresql/9.1/windows64)的st_geometry.dll拷贝至postgresql的安装目录(如:D:\Program Files\PostgreSQL\9.1\lib)下

4、将D:\Program Files\PostgreSQL\9.1\bin下的libeay32.dll、libiconv-2.dll、libintl-8.dll、libpq.dll、ssleay32.dll这几个dll拷贝至arcgis安装目录D:\Program Files (x86)\ArcGIS\Desktop10.2\bin下,但是这里有个坑,因为desktop是32位的,所以这里只能拷贝32位的dll,否则desktop一直无法连接postgresql,所以这里需要下载32位的这几个dll(或者下载32位的postgresql安装包,安装后,将dll拷贝出来,注意安装包版本要对应);

5、将将D:\Program Files\PostgreSQL\9.1\bin下的libeay32.dll、libiconv-2.dll、libintl-8.dll、libpq.dll、ssleay32.dll这几个dll拷贝至arcgis server安装目录D:\Program Files (x86)\ArcGIS\Server\bin下,注意这里了,因为server是64位,所以这里又需要拷贝64位的dll,否则数据库无法发布服务

6、环境准好了,那么准备一些测试数据(例如shpfile文件);

7、在postgresql下手动创建空间数据库,名称为test(注意:数据库模板一定要选择空间数据库模板template_postgis_20,否则无法导入数据,只是一个普通的数据库;另外数据库名称不能有大写的字母,arcgis不允许);

8、打开ArcMap,打开右侧侧边栏【目录】,点击【数据库连接】下方的【添加数据库连接】,在弹出的界面中依次选择相应内容,数据库平台-【postgresql】;实例-【localhost】(数据库安装在其他电脑上,填入地址即可,如果在其他的电脑上,必须在数据库配置文件pg_hba.conf中,将arcgis安装的电脑设置为允许接入);身份验证类型-【数据库身份验证】;用户名-【postgres】;密码-【安装数据库时输入的密码,例如:123456】;勾选保存用户名和密码;数据库-【选择刚才创建的数据库名称test】;点击【确定】等待;

9、右键【数据库连接】目录下刚才创建好的连接(例如:【连接到localhost.sde】);选择【启用地理数据库】,arcgis会自动创建对应的数据库角色sde(只能是sde)和相关的配套内容;等待完成;

10、完成后在postgresql中给sde用户赋予空间数据处理和使用的权限

GRANTselect,insert,update,deleteONTABLEpublic.geometry_columnsTO
sde
;

GRANTselectONTABLEpublic.spatial_ref_sysTO
sde
;

11、好了,准备就绪,右键刚才建立的数据库连接,选择【导入】-【要素类(多个)】,选择准备好的数据,导入即可


【注意】:移除sde在数据库中的权限:

1、REVOKE select ON TABLE public.spatial_ref_sys FROM sde;

2、REVOKE select,insert,update,delete ON TABLE public.geometry_columns FROM sde;

转载自:https://blog.csdn.net/lifuzl1/article/details/77941444