1.首先要明白版本对应问题:
arcgis desktop 和pg版本要求一一对应。就是arcgis10.4对应pg9.4及90.4以下版本。就是arcgis10.5对应pg9.5及9.5以下版本。
2.客户端你中有我,我中有你问题:
arcgis的pg插件要放到pg中,pg客户端要放到arcgis中。这个先不着急解决,往下看。
3.arcgis只支持32位问题
arcgis由于老牌软件,支持32位的连接方式。所以pg如果想连接arcgis只能弄个pg32位客户端给到arcgis才行。当然你pg按32位还是64位是没关系的,鉴于64位主流还是按64位没关系的。只要弄个32位pg客户端就行。
32位客户端这里有网友分享的位置。亲测可用。
https://www.enterprisedb.com/products-services-training/pgbindownload
从上面下载对应你pg软件版本的pg客户端,这里找到PostgreSQL的客户端,或者在别的机器上将32位的 libeay32.dll, libiconv-2.dll, libintl-8.dll, libpq.dll, and ssleay32.dll
4.拷贝到arcgis的目录问题
网上有文章说要将上5个dll文件拷贝到Desktop 安装目录的bin目录下,但是我这没起作用,建议考到lib目录下。
5.通过以上4个步骤。arcgis中有pg了。再解决pg中有arcgis问题。
把位于...\Desktop10.4\DatabaseSupport\PostgreSQL\9.4\Windows64目录下的libst_raster_pg.dll、pgsqlengine.dll、st_geometry.dll等三个文件,也是所有文件拷贝到....\PostgreSQL\9.4\lib目录下(忘记了,大概是lib文件夹,也有可能是bin因为都试过了)。
6.配置pg数据库。
1)pg数据库要想支持gis空间数据postgis是要装的。
2)在pg里建立角色,sde角色要在pg里建立好密码。
3)而且要建立数据库sde,权限最大化都给到,设置数据库属于角色sde
4)数据库的ip直连问题。大多数数据库一般直接localhost:5432端口号会连接上。但是如果使用它的ip+端口号是连不上的。而我们很多数据库基本不会用localhost来连接。所以要设置好,防止出现这样的问题。
具体步骤如下:打开pg数据库,工具,选择配置文件
弹出右侧对话框,在最下面双击,添加一个新的,勾上启用。填上ip地址。
7.设置完以上步骤,可以打开arcgis,toolbox里找到数据管理工具——地理数据库管理create enterprise database
前几个步骤准备充分,这里基本不会出错的。如果出错,百度吧。