且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

从零开始发布一个ArcGIS Server地图服务

更新时间:2022-04-25 08:43:29


文章目录

此前从未接触过ArcGIS,对Oracle和postGre SQL也比较陌生。本文介绍了从零开始,到搭建环境,再到发布第一个ArcGIS地图服务的完整过程。

一、软件环境搭建

由于在地图制作时我们需要在 arcMap 中读取数据库中的地理数据,并且在发布地图服务时。arcGIS Server 也需要从数据库中读取数据并发布。所以我们需要建立起 arcMap----> 数据库 和 arcGIS Server----->数据库的连接。并且,由于我们可以在 arcMap 对 arcGIS Server 进行管理,所以也需要建立起这两者的连接。具体关系如下(以 postgreSQL为例:)

从零开始发布一个ArcGIS Server地图服务

本文中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位。

  • 运行安装

从零开始发布一个ArcGIS Server地图服务


  • 出现下图警告,不用理会
    从零开始发布一个ArcGIS Server地图服务

  • 电子邮件可以不填
    从零开始发布一个ArcGIS Server地图服务

  • 安装选项选择创建和配置数据库
    从零开始发布一个ArcGIS Server地图服务

  • 根据机器的配置情况自行选择,这里选择的是桌面类
    从零开始发布一个ArcGIS Server地图服务
  • 自定义Oracle的基目录,管理口令自行设置
    从零开始发布一个ArcGIS Server地图服务

  • 完成
    从零开始发布一个ArcGIS Server地图服务
  • 安装产品,时间会比较长,喝杯茶慢慢等待吧

从零开始发布一个ArcGIS Server地图服务

从零开始发布一个ArcGIS Server地图服务

  • 产品安装完成后记得要做口令管理
    从零开始发布一个ArcGIS Server地图服务

  • 这里主要配置3个账户,sys账户,相当于MySQL的root账户;system账户,普通管理员,客户端配置的时候会用到;scott账户,普通账户。
    从零开始发布一个ArcGIS Server地图服务
    从零开始发布一个ArcGIS Server地图服务
    从零开始发布一个ArcGIS Server地图服务

  • 测试Oracle是否安装完成:在Dos窗口里输入命令sqlplus,用户名和口令输入system账户的用户名和口令,如下,Oracle服务端安装完成。
    从零开始发布一个ArcGIS Server地图服务
  • Oracle配置,由于这里Oracle和Arcgis是安装在一台机器上,所以配置基本不用变更

从零开始发布一个ArcGIS Server地图服务

  • 查看Oracle的配置:服务名、网络地址。

从零开始发布一个ArcGIS Server地图服务

  • 如果要配置Oracle非本地的访问,可以查看参考【1】

1.1.2、安装Oracle客户端

Oracle客户端需要安装32位客户端,因为ArcGIS DeskTop是32位。

  • 开始安装
    从零开始发布一个ArcGIS Server地图服务
  • 警告不管
    从零开始发布一个ArcGIS Server地图服务

  • 选择管理员
    从零开始发布一个ArcGIS Server地图服务

  • 选择简体中文

从零开始发布一个ArcGIS Server地图服务


  • 自定义安装路径
    从零开始发布一个ArcGIS Server地图服务
  • 完成
  • 安装中,时间会比较长
    从零开始发布一个ArcGIS Server地图服务
  • 客户端安装完成

从零开始发布一个ArcGIS Server地图服务

客户端安装完成后,需要进行配置

  • 进入配置界面
    从零开始发布一个ArcGIS Server地图服务

  • 选择本地网络服务名配置
    从零开始发布一个ArcGIS Server地图服务

  • 选择添加
    从零开始发布一个ArcGIS Server地图服务

  • 填写服务名
    从零开始发布一个ArcGIS Server地图服务

  • 选择TCP
    从零开始发布一个ArcGIS Server地图服务

  • 填入主机名,选择端口号
    从零开始发布一个ArcGIS Server地图服务    

  • 选择
    从零开始发布一个ArcGIS Server地图服务

  • 测试未成功,选择更改登录

从零开始发布一个ArcGIS Server地图服务

  • 填入system的用户名、密码

从零开始发布一个ArcGIS Server地图服务

  • 连接测试成功

从零开始发布一个ArcGIS Server地图服务

接下来选择下一步直到结束,至此,Oracle客户端安装配置完成。


1.2、PostgreSQL(可选)

需要注意的是,PostgreSQL作为地理数据库的时候需要安装它的扩展postgis.


1.2.1、安装PostgreSQL

  • 点击安装包

从零开始发布一个ArcGIS Server地图服务

  • 选择安装路径,数据存放路径

从零开始发布一个ArcGIS Server地图服务

从零开始发布一个ArcGIS Server地图服务

  • 设置超级用户postgres的密码
    从零开始发布一个ArcGIS Server地图服务

  • 选择端口

从零开始发布一个ArcGIS Server地图服务


  • postgresql语言环境(默认)

从零开始发布一个ArcGIS Server地图服务


  • 取消勾选使用Stack Builder

从零开始发布一个ArcGIS Server地图服务


  • 完成安装后window菜单会有pgAdminⅢ的数据库管理程序,打开后使用刚才的密码成功连接数据库

从零开始发布一个ArcGIS Server地图服务

从零开始发布一个ArcGIS Server地图服务

1.2.2、postgis安装

PostgreSQL安装完成后,安装postgis。

  • 运行可安装文件

从零开始发布一个ArcGIS Server地图服务

  • 勾选Create spatial database(完成安装后自动创建空间数据库检验安装)

从零开始发布一个ArcGIS Server地图服务


  • 安装目标路径需要选择刚才postgresql的安装目录
    从零开始发布一个ArcGIS Server地图服务

  • 输入刚才设置的密码

从零开始发布一个ArcGIS Server地图服务


  • 设置空间数据库模板名称(默认即可)

从零开始发布一个ArcGIS Server地图服务


  • 安装即将完成时弹出三个确认框:都选择是

从零开始发布一个ArcGIS Server地图服务


  • 打开pgAdmin发现多了一个模板

从零开始发布一个ArcGIS Server地图服务

postgis安装完成。


2、ArcGIS相关软件安装

ArcGIS相关软件按照如下顺序安装。

2.1、ArcGIS Server安装

  • 点击
    从零开始发布一个ArcGIS Server地图服务

  • 下一步……
    从零开始发布一个ArcGIS Server地图服务

从零开始发布一个ArcGIS Server地图服务

  • 选择安装路径
    从零开始发布一个ArcGIS Server地图服务

  • 选择Python27安装路径
    从零开始发布一个ArcGIS Server地图服务

  • 配置ArcGis Server Account的账号、密码
    从零开始发布一个ArcGIS Server地图服务

  • 不导出配置文件
    从零开始发布一个ArcGIS Server地图服务

  • 安装
    从零开始发布一个ArcGIS Server地图服务

  • 安装中,时间会比较长,再喝一杯茶
    从零开始发布一个ArcGIS Server地图服务

  • 安装完成
    从零开始发布一个ArcGIS Server地图服务

  • 选择许可文件

从零开始发布一个ArcGIS Server地图服务

从零开始发布一个ArcGIS Server地图服务

  • 配置完许可后,会打开ArcGis管理页面,选择创建新站点
    从零开始发布一个ArcGIS Server地图服务
  • 填入用户名和密码

从零开始发布一个ArcGIS Server地图服务

  • 选择根服务目录
    从零开始发布一个ArcGIS Server地图服务
    从零开始发布一个ArcGIS Server地图服务
    从零开始发布一个ArcGIS Server地图服务
  • 登录ArcgisServer站点
    从零开始发布一个ArcGIS Server地图服务

  • 在站点上已经有一个世界地图的服务
    从零开始发布一个ArcGIS Server地图服务
  • 用当前机器的ip也可以访问服务站点
    从零开始发布一个ArcGIS Server地图服务

2.2、ArcGIS License Manager安装

许可证管理器。

  • 点击

从零开始发布一个ArcGIS Server地图服务

  • 下一步……

从零开始发布一个ArcGIS Server地图服务

从零开始发布一个ArcGIS Server地图服务


  • 自定义安装路径

从零开始发布一个ArcGIS Server地图服务

  • 安装中,时间也得一会儿
    从零开始发布一个ArcGIS Server地图服务从零开始发布一个ArcGIS Server地图服务

为了后面的破解ArcGis Desktop:

  • 进入许可证服务管理界面

从零开始发布一个ArcGIS Server地图服务


  • 停止
    从零开始发布一个ArcGIS Server地图服务
    从零开始发布一个ArcGIS Server地图服务

  • 打开破解工具的文件夹,点击注册器
    从零开始发布一个ArcGIS Server地图服务
  • 手动输入Version,点击All

从零开始发布一个ArcGIS Server地图服务


  • 生成的文本全部复制
    从零开始发布一个ArcGIS Server地图服务
  • 新建一个文本,命名为service.txt,将上面复制的文本粘贴进去
    从零开始发布一个ArcGIS Server地图服务
  • 将将破解文件 ARCGIS.exe、service.txt复制到License Manager 安装路径bin目录下替换掉已有的这两个文件。
    从零开始发布一个ArcGIS Server地图服务
    从零开始发布一个ArcGIS Server地图服务
  • 启动,重新读取许可
    从零开始发布一个ArcGIS Server地图服务
    从零开始发布一个ArcGIS Server地图服务

2.3、ArcGIS Desktop安装

  • 点击可执行文件
    从零开始发布一个ArcGIS Server地图服务
  • 下一步……
    从零开始发布一个ArcGIS Server地图服务
    从零开始发布一个ArcGIS Server地图服务

  • 选择Complete
    从零开始发布一个ArcGIS Server地图服务

  • 选择安装路径
    从零开始发布一个ArcGIS Server地图服务

  • 选择Python27路径
    从零开始发布一个ArcGIS Server地图服务

  • 不选
    从零开始发布一个ArcGIS Server地图服务

  • 安装中,再喝一杯茶
    从零开始发布一个ArcGIS Server地图服务
    从零开始发布一个ArcGIS Server地图服务

  • 安装完成后,进入如下页面,选择如下
    从零开始发布一个ArcGIS Server地图服务

  • 在 License Manager看到如下,破解成功
    从零开始发布一个ArcGIS Server地图服务
  • 点击下图所示图标,可以启动ArcMap
    从零开始发布一个ArcGIS Server地图服务

二、发布地图服务

1、创建空白地图

  • 打开ArcMap后,创建空白地图。

从零开始发布一个ArcGIS Server地图服务


  • 保存地图
    从零开始发布一个ArcGIS Server地图服务

从零开始发布一个ArcGIS Server地图服务

可以直接把shp格式的文件给拉进去,会创建新的图层。

从零开始发布一个ArcGIS Server地图服务

  • 到了这里,其实就已经可以发布地图服务了。
    从零开始发布一个ArcGIS Server地图服务
    当然了,为了对数据进行管理,还是要进行接下来的操作。

2、创建文件夹连接

  • 在CateLog里选择文件夹连接

从零开始发布一个ArcGIS Server地图服务

从零开始发布一个ArcGIS Server地图服务


  • 创建和我们的测试数据文件夹的连接

从零开始发布一个ArcGIS Server地图服务

3、创建与ArcGIS Server的连接

为了发布地图服务,得创建和Arcgis Server的连接

  • 添加ArcGIS Server连接

  • 选择管理ArcGIS Server
    从零开始发布一个ArcGIS Server地图服务

  • 填入ArcGis Server站点的相关信息

从零开始发布一个ArcGIS Server地图服务


  • 连接上Arcgis Server,可以把Arcgis Server的地图直接拖进去
    从零开始发布一个ArcGIS Server地图服务

3、创建企业级地理数据库

可以从ArcGIS Desktop(Desktop Standard 或 Desktop Advanced)运行创建企业级地理数据库工具,或从 ArcGIS Desktop、ArcGIS Server 或 ArcGIS Engine 客户端运行 Python 脚本,来创建 sde 用户、方案、表空间和地理数据库。

这里通过创建企业级地理数据库工具来创建企业级空间数据库,该工具位于“数据管理”工具箱的“地理数据库管理”工具集中:

从零开始发布一个ArcGIS Server地图服务


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 的授权文件。

从零开始发布一个ArcGIS Server地图服务从零开始发布一个ArcGIS Server地图服务

  • 创建中,得一会儿
    从零开始发布一个ArcGIS Server地图服务

  • 创建完成

从零开始发布一个ArcGIS Server地图服务

3.2、PostgreSQL

3.2.1、st_geometry.dll复制

  • 在Desktop安装目录 --> DatabaseSupport文件夹 --> postgreSQL文件夹 --> 9.2文件夹 --> Window64文件夹中找到st_geometry.dll文件。
  • 将st_geometry.dll文件复制到postgresql安装目录 --> lib文件夹中。

从零开始发布一个ArcGIS Server地图服务

3.2.2、5个用于连接的dll文件复制

由于desktop是32位,postgresql是64位,我们需要将:

  • libeay32.dll
  • libiconv-2.dll
  • libintl.dll
  • ibpd.dll
  • ssleay.dll
    5个文件复制到Desktop安装目录 --> bin文件夹中,复制时选择全部替换。

从零开始发布一个ArcGIS Server地图服务

3.2.3、创建postgresql数据库

  • 在pgAdmin中新建数据库名称为sample,所有者为postgres,模板为postgis_20
  • 创建模式(从ArcGIS Catalog连接postgresql数据库导入数据时,数据库中必须有postgres模式)。执行如下语句并显示成功:
create schema postgres;

从零开始发布一个ArcGIS Server地图服务


OK,PostgreSQL的相关配置完成了,可以创建创建企业级地理数据库。

3.2.4、创建企业级地理数据库(postgresql)

  • 数据库平台选择PostgreSQL。
  • 实例填入localhost(本机)。
  • 数据库选择刚才创建的sample数据库。
  • 数据库管理员为超级用户postgres。
  • 数据库管理员密码为自己设置的密码
  • 地理数据库管理员密码自己设定
  • 授权文件选择arcgis server的授权文件。
    从零开始发布一个ArcGIS Server地图服务
  • 创建成功:
    从零开始发布一个ArcGIS Server地图服务

4、创建数据库连接

企业级地理数据库创建完成之后,就可以连接了。

4.1、Oracle

  • 数据库连接中新建连接
    从零开始发布一个ArcGIS Server地图服务

  • 输入上一步中的数据库相关配置
    从零开始发布一个ArcGIS Server地图服务

  • 连接成功之后,可以看到数据库连接

从零开始发布一个ArcGIS Server地图服务

4.2、PostgreSQL

数据库平台选择PostgreSQL

实例为localhost

数据库身份验证:用户名为超级用户。密码为自己设置的密码

数据库选择刚才创建的sample数据库

从零开始发布一个ArcGIS Server地图服务

6、地理数据库导入数据

地理数据库连接之后,可以为地理数据库导入数据了。这里有两种导入的方式。


6.1、直接导入

  • 数据库连接,右键,import,可以选择导入单个或多个

从零开始发布一个ArcGIS Server地图服务


  • 导入单个
    从零开始发布一个ArcGIS Server地图服务

  • 数据成功导入地理数据库,可以将导进去的数据直接拖出来
    从零开始发布一个ArcGIS Server地图服务

6.2、通过文件空间数据库导入

上面的方式比较快捷,但是导入失败的概率相对要大一些,所以推荐用下面的方式。

  • 在文件夹连接,右键,创建文件空间数据库

从零开始发布一个ArcGIS Server地图服务


  • 新建的文件空间数据库导入数据

从零开始发布一个ArcGIS Server地图服务

从零开始发布一个ArcGIS Server地图服务从零开始发布一个ArcGIS Server地图服务


  • 导入成功
    从零开始发布一个ArcGIS Server地图服务

  • 可以直接拖拽进地理空间数据库
    从零开始发布一个ArcGIS Server地图服务从零开始发布一个ArcGIS Server地图服务

  • 直接拖入可能会因为空间坐标系不一致的原因失败,还可以在空间数据库上直接import

从零开始发布一个ArcGIS Server地图服务

从零开始发布一个ArcGIS Server地图服务

从零开始发布一个ArcGIS Server地图服务

从零开始发布一个ArcGIS Server地图服务


7、发布地图服务

数据已经成功导入企业级地理数据库,接下里可以发布地图服务了。

  • 将数据拖进去
    从零开始发布一个ArcGIS Server地图服务
  • 可以对图层进行编辑,分类等操作
    从零开始发布一个ArcGIS Server地图服务
  • 发布地图服务

从零开始发布一个ArcGIS Server地图服务

从零开始发布一个ArcGIS Server地图服务

  • 选择之前创建的和Arcgis Server的连接

从零开始发布一个ArcGIS Server地图服务


  • 选择服务目录,这里新建了一个目录

从零开始发布一个ArcGIS Server地图服务


  • 发布之前可以先分析一下
    从零开始发布一个ArcGIS Server地图服务

  • 发布
    从零开始发布一个ArcGIS Server地图服务
    从零开始发布一个ArcGIS Server地图服务

8、查看发布的地图服务

成功发布的服务可以在Arc Map里预览,这里从Arcgis Server站点查看

  • 登录站点,可以找到我们发布的地图服务
    从零开始发布一个ArcGIS Server地图服务

  • 在功能里可以看到地图服务提供给第三方调用的接口
    从零开始发布一个ArcGIS Server地图服务
  • 点击进去,在这里可以选择通过ArcGis JavaScript的方式预览
    从零开始发布一个ArcGIS Server地图服务
    从零开始发布一个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 Server地图服务

这个问题通常是这些原因导致的:

  • 在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位的变量列在前面。

从零开始发布一个ArcGIS Server地图服务

然后,重启电脑,问题解决。

2、PostgreSQL作为数据库没有数据表

PostgreSQL作为企业级地理数据库,刚连接的时候没有数据

从零开始发布一个ArcGIS Server地图服务

正常应该是这种:

从零开始发布一个ArcGIS Server地图服务

另外,PostgreSQL导入数据时,偶尔会失败,原因还未排查出来。





End!