@
- 一、软件环境搭建
- 1、数据库安装
- 1.1、Oracle(可选)
- 1.1.1、安装Oracle服务端
- 1.1.2、安装Oracle客户端
- 1.2、PostgreSQL(可选)
- 1.2.1、安装PostgreSQL
- 1.2.2、postgis安装
- 1.1、Oracle(可选)
- 2、ArcGIS相关软件安装
- 2.1、ArcGIS Server安装
- 2.2、ArcGIS License Manager安装
- 2.3、ArcGIS Desktop安装
- 1、数据库安装
- 二、发布地图服务
- 1、创建空白地图
- 2、创建文件夹连接
- 3、创建与ArcGIS Server的连接
- 3、创建企业级地理数据库
- 3.1、Oracle
- 3.2、PostgreSQL
- 3.2.1、st_geometry.dll复制
- 3.2.2、5个用于连接的dll文件复制
- 3.2.3、创建postgresql数据库
- 3.2.4、创建企业级地理数据库(postgresql)
- 4、创建数据库连接
- 4.1、Oracle
- 4.2、PostgreSQL
- 6、地理数据库导入数据
- 6.1、直接导入
- 6.2、通过文件空间数据库导入
- 7、发布地图服务
- 8、查看发布的地图服务
- 三、遇到的问题
- 1、ArcGIS直连Oracle失败
- 2、PostgreSQL作为数据库没有数据表
此前从未接触过ArcGIS,对Oracle和postGre SQL也比较陌生。本文介绍了从零开始,到搭建环境,再到发布第一个ArcGIS地图服务的完整过程。
一、软件环境搭建
由于在地图制作时我们需要在 arcMap 中读取数据库中的地理数据,并且在发布地图服务时。arcGIS Server 也需要从数据库中读取数据并发布。所以我们需要建立起 arcMap----> 数据库 和 arcGIS Server----->数据库的连接。并且,由于我们可以在 arcMap 对 arcGIS Server 进行管理,所以也需要建立起这两者的连接。具体关系如下(以 postgreSQL为例:)
本文中ArcGis相关软件版本为10.2,Oracle版本为11g,PostgreSQL版本为9.1。
本文用到的软件下载地址:
度盘:https://pan.baidu.com/s/1fdAiJW1YSBlQcj7Siu4kpg 提取码:a41c
在软件的安装过程中,有一些账号密码的配置,建议使用记事本等工具记录,以免忘记。
1、数据库安装
ArcGIS支持若干数据库,我们这里用了两种,Oracle和开源的postGre SQL,选用其中一种即可。相比较而言,使用Oracle作为地理数据库的搭建要简单一些,条件允许的话,推荐使用Oracle数据库。
1.1、Oracle(可选)
1.1.1、安装Oracle服务端
这里选择的是Oracle11g 64位。
- 运行安装
-
安装产品,时间会比较长,喝杯茶慢慢等待吧
-
测试Oracle是否安装完成:在Dos窗口里输入命令sqlplus,用户名和口令输入system账户的用户名和口令,如下,Oracle服务端安装完成。
-
Oracle配置,由于这里Oracle和Arcgis是安装在一台机器上,所以配置基本不用变更
- 查看Oracle的配置:服务名、网络地址。
- 如果要配置Oracle非本地的访问,可以查看参考【1】
1.1.2、安装Oracle客户端
Oracle客户端需要安装32位客户端,因为ArcGIS DeskTop是32位。
客户端安装完成后,需要进行配置
- 测试未成功,选择更改登录
- 填入system的用户名、密码
- 连接测试成功
接下来选择下一步直到结束,至此,Oracle客户端安装配置完成。
1.2、PostgreSQL(可选)
需要注意的是,PostgreSQL作为地理数据库的时候需要安装它的扩展postgis.
1.2.1、安装PostgreSQL
- 点击安装包
- 选择安装路径,数据存放路径
- 选择端口
- postgresql语言环境(默认)
- 取消勾选使用Stack Builder
- 完成安装后window菜单会有pgAdminⅢ的数据库管理程序,打开后使用刚才的密码成功连接数据库
1.2.2、postgis安装
PostgreSQL安装完成后,安装postgis。
- 运行可安装文件
- 勾选Create spatial database(完成安装后自动创建空间数据库检验安装)
- 设置空间数据库模板名称(默认即可)
- 安装即将完成时弹出三个确认框:都选择是
- 打开pgAdmin发现多了一个模板
2、ArcGIS相关软件安装
ArcGIS相关软件按照如下顺序安装。
2.1、ArcGIS Server安装
- 选择许可文件
2.2、ArcGIS License Manager安装
许可证管理器。
- 点击
- 下一步……
为了后面的破解ArcGis Desktop:
- 进入许可证服务管理界面
2.3、ArcGIS Desktop安装
二、发布地图服务
1、创建空白地图
- 打开ArcMap后,创建空白地图。
可以直接把shp格式的文件给拉进去,会创建新的图层。
2、创建文件夹连接
- 在CateLog里选择文件夹连接
- 创建和我们的测试数据文件夹的连接
3、创建与ArcGIS Server的连接
为了发布地图服务,得创建和Arcgis Server的连接
3、创建企业级地理数据库
可以从ArcGIS Desktop(Desktop Standard 或 Desktop Advanced)运行创建企业级地理数据库工具,或从 ArcGIS Desktop、ArcGIS Server 或 ArcGIS Engine 客户端运行 Python 脚本,来创建 sde 用户、方案、表空间和地理数据库。
这里通过创建企业级地理数据库工具来创建企业级空间数据库,该工具位于“数据管理”工具箱的“地理数据库管理”工具集中:
3.1、Oracle
- 打开创建企业级地理数据库工具,从数据库平台下拉列表中选择 Oracle。
需要填写连接到 Oracle 实例的相关信息:
♦ 如果已经将 Oracle 客户端配置为使用 TNS 网络别名,则在实例文本框中输入 Net 服务别名。
♦ 如果尚未配置 Oracle 客户端的网络别名,并且 Oracle 数据库和客户端均配置为使用 Easy Connect 字符串,则在实例文本框中提供 Oracle Easy Connect 字符串。
♦ 必须以数据库管理员身份连接到数据库才能创建地理数据库管理员和表空间。因此,数据库管理员文本框中应填入sys 用户名。
♦在数据库管理员密码文本框中输入 sys 用户的密码。
♦在地理数据库管理员文本框中输入 sde——如果数据库中不存在 sde 用户,则该工具会创建此用户并授予其创建地理数据库所需的权限。如果用户已存在,则会向其授予所需的权限。
♦在地理数据库管理员密码文本框中输入 sde 用户的密码——如果数据库中已存在 sde 用户,需要确保为现有用户输入正确的密码;此工具不会更改密码。如果创建的是 sde 用户,则输入的密码会在创建 sde 用户时使用。
♦为 sde 用户指定表空间(可选)——如果拥有可用于地理数据库资料档案库的预配置表空间,则可在表空间名称文本框中输入其名称。
♦如果想要此工具创建表空间,可在表空间名称文本框中输入有效的名称,该工具会在 Oracle 默认位置创建一个 400 MB 的表空间。如果不输入表空间名称,则会创建 SDE_TBS 表空间,并将其设置为 sde 用户的默认表空间。
♦ 要指定授权文件,使用授权 ArcGIS Server Enterprise 的授权文件。
3.2、PostgreSQL
3.2.1、st_geometry.dll复制
- 在Desktop安装目录 --> DatabaseSupport文件夹 --> postgreSQL文件夹 --> 9.2文件夹 --> Window64文件夹中找到st_geometry.dll文件。
- 将st_geometry.dll文件复制到postgresql安装目录 --> lib文件夹中。
3.2.2、5个用于连接的dll文件复制
由于desktop是32位,postgresql是64位,我们需要将:
-
libeay32.dll
-
libiconv-2.dll
-
libintl.dll
-
ibpd.dll
-
ssleay.dll
5个文件复制到Desktop安装目录 --> bin文件夹中,复制时选择全部替换。
3.2.3、创建postgresql数据库
-
创建模式(从ArcGIS Catalog连接postgresql数据库导入数据时,数据库中必须有postgres模式)。执行如下语句并显示成功:
create schema postgres;
OK,PostgreSQL的相关配置完成了,可以创建创建企业级地理数据库。
3.2.4、创建企业级地理数据库(postgresql)
-
数据库平台选择PostgreSQL。
-
实例填入localhost(本机)。
-
数据库选择刚才创建的sample数据库。
-
数据库管理员为超级用户postgres。
-
数据库管理员密码为自己设置的密码
-
地理数据库管理员密码自己设定
4、创建数据库连接
企业级地理数据库创建完成之后,就可以连接了。
4.1、Oracle
4.2、PostgreSQL
数据库平台选择PostgreSQL
实例为localhost
数据库身份验证:用户名为超级用户。密码为自己设置的密码
数据库选择刚才创建的sample数据库
6、地理数据库导入数据
地理数据库连接之后,可以为地理数据库导入数据了。这里有两种导入的方式。
6.1、直接导入
- 数据库连接,右键,import,可以选择导入单个或多个
6.2、通过文件空间数据库导入
上面的方式比较快捷,但是导入失败的概率相对要大一些,所以推荐用下面的方式。
- 在文件夹连接,右键,创建文件空间数据库
- 新建的文件空间数据库导入数据
7、发布地图服务
数据已经成功导入企业级地理数据库,接下里可以发布地图服务了。
- 选择之前创建的和Arcgis Server的连接
- 选择服务目录,这里新建了一个目录
8、查看发布的地图服务
成功发布的服务可以在Arc Map里预览,这里从Arcgis Server站点查看
三、遇到的问题
1、ArcGIS直连Oracle失败
Executing: CreateEnterpriseGeodatabase Oracle localhost/orcl # DATABASE_AUTH sys ***** SDE_SCHEMA sde ***** # D:\SoftwareFile\易智瑞版\arcgisserver10.2.ecp
Start Time: Thu Apr 02 18:07:32 2020
Cannot connect to database because the database client software failed to load. Be sure the database client software is installed and configured correctly.
Failed to execute (CreateEnterpriseGeodatabase).
Failed at Thu Apr 02 18:07:32 2020 (Elapsed Time: 0.01 seconds)
这个问题通常是这些原因导致的:
- 在ArcGIS for Desktop计算机上未安装Oracle客户端
- 尝试从ArcMap或ArcCatalog(这是32位应用程序)连接到Oracle时,仅安装64位客户端
- 尝试从ArcGIS for Server或ArcGIS Pro(64位应用程序)连接到Oracle时,仅安装32位客户端。
解决办法:
- 要解决此问题,请确保已安装Oracle客户端,并且客户端的位级别与连接的应用程序的位级别匹配。
- 如果32位客户端和64位客户端都安装在同一台计算机上,则必须在Windows操作系统的PATH环境变量中首先列出64位客户端。
我的错误原因是只安装了64位的客户端,再装一个32位的客户端,把Path中64位的变量列在前面。
然后,重启电脑,问题解决。
2、PostgreSQL作为数据库没有数据表
PostgreSQL作为企业级地理数据库,刚连接的时候没有数据
正常应该是这种:
另外,PostgreSQL导入数据时,偶尔会失败,原因还未排查出来。
End!
ps:本人是一个Gis纯小白,文中有错漏之处,欢迎指出。希望能够相互学习,共同进步!
参考:
【1】:Oracle 11g 服务端、客户端的安装配置
【2】:arcgis链接oracle发布地图服务
【3】:Oracle 教程
【4】:在 Oracle 中创建地理数据库
【5】:ArcSDE直连总结
【6】:Error: Client software failed to load. Be sure the database client software is installed and configured correctly
【7】:ArcGIS server 10.2安装教程详细版
【8】:Arcgis License的安装及破解
【9】:ArcGIS Desktop 10.2 安装与破解图文教程
【10】:连接 arcMap、arcGIS Server 和 postgreSQL
【11】:arcgis10.2与postgresql9.2.2从安装到发布服务教程