说明:文章结尾有所有资源的下载连接
Arcgis连接pgsql 发布服务
- 操作系统win10;arcgis 10.6 ;pgsql 9.4 64位;arcgis server 10.4 postgis pg94x64 ArcGIS Server 10.4.1.ecp
说明:pgsql必须得用64位,因为arcgis desktop10.6 支持pg 9.4 9.4 9.6 ,arcgis server10.4 支持9.2 9.3 9.4 所以选择了pg9.4
- 正常安装arcgis desktop,arcgis server,pgsql,postgis;
- Arcgis 创建企业级数据库
在arcgis的工具箱中,arctoolbox-data management tools-geodatabase administration-create enterprise database
- Instance pgsql数据库安装主机的IP地址,如果是默认端口5432,则只需要IP即可,例如192.168.5.221;如果不是默认地址 这需要写端口,例如192.168.5.221,5433
- 要注意 geodatabase adiministrator 账号和密码 在arcgis连接数据库时需要。
- Arcgis连接pgsql
- 将arcgis的pg支持库拷贝到pg安装路径下
在arcgis安装路径下找到st_geometry.dll,具体路径是 C:\Program Files (x86)\ArcGIS\Desktop10.6\DatabaseSupport\PostgreSQL\9.4\Windows64(这是我的安装路径),把该库拷贝到pg的lib文件中,具体路径:C:\Program Files\PostgreSQL\9.4\lib(这是我的安装路径);
- 创建连接
Arcgis中catalog-database connections-add database connection
- Instance 见上一步解释
- User name 使用的安装数据库时的账户名称
- 如果连接成功,即可选择数据库,连接失败则会提示,注意如果数据库不在本机则需要修改pg配置文件 pg_hba.conf, 具体路径C:\Program Files\PostgreSQL\9.4\data,在最后一行添加如下内容。
创建连接后数据库有红叉标识,双击数据库里连接即可。
- 导入数据
右击数据库连接,import-feature class(multiple)
导入失败
尝试新建feature class
右击数据库连接,new-feature class
然后一直下一步,最后报错。Database user name and current suer schema do not match.
这两个错误的原因就是 连接时user name 选择错误,因为在创建test3数据库时用的sde 用户名或者说是schema,但是连接数据库是用的postgres 用户名,这个一定要注意。
断开数据库重新连接,并导入数据。
- 发布feature access 地图
将数据库中的图层加载到arcgis 中,并发布地图(地图发布教程网上很多),自行查询。发布中需要选择 feature access 类型,点击 analysis后 提示错误,feature service requires a registered databse。
需要将一个数据库注册为arcgis 数据库。
注册数据库:
可以双击错误,弹出注册数据库窗口,“+” register database - add
注意:如果arcgis server 与数据库不在同一个电脑 则要考虑 防火墙问题,在arcgis连接server 时候同样要注意防火墙问题。
解决方案:关闭防火墙或者在防火墙出站入站规则中 放开相应的端口即可
数据库注册成功后再次分析:
分析无错误,发布地图即可。
- 查看地图
资源下载:由于资源过大,上传了一个文本,文本中有百度网盘地址和提取码