ArcGIS发布要素服务

撰写日期:2019年12月10日
注意:随着时间推移,该博文可能不再适用,请仔细检查自己的版本与博文版本的对应关系,不能保证三五年后,该博文仍然对新版本的ArcGIS有效!

一般情况下,我们会发布影像服务、地图服务、要素服务三种服务至ArcGIS Server,然后在web端,可以利用ArcGIS API for Javascript调用三种服务。前面介绍了如何发布影像服务和地图服务,今天介绍如何利用ArcGIS发布要素服务

由于要素服务发布后,我们想要编辑要素,而不仅仅是查看下,因此要素服务的发布一般需要借助某种数据库,例如SQL Server,要素图层实际上存储在关系数据库中。要素服务成功发布后,可以利用web端对要素进行修改、删除等编辑操作。当然在web端对要素的修改,实际上修改的是存储在数据库(如sql server)中的数据。


一、系统环境

  • Windows 10 企业版 1903 64bit
  • SQL Server 2014 Express
  • ArcGIS Desktop 10.2.2
  • ArcGIS Server 10.2.2

二、安装软件

ArcGIS连接数据库有两种方式,一种是直接连接,另外一种是服务连接

  • 直接连接也就是arcgis直接连接至关系数据数据库,没有中间层,不需要安装ArcSDE
  • 服务连接往往需要通过ArcSDE这一层,需要安装ArcSDE
    ESRI官方推荐是直接连接,因此本文也采用直接连接,不安装ArcSDE。

2.1 安装SQL Server 2014 Express

Express是学习版,安装包比较小。如果你功能要求比较多,可以装develop版本。或者安装Oracle。

2.2 安装ArcGIS Desktop 10.2.2

这里不赘述了,GIS专业的同学应该很熟悉。需要注意的是先安装ArcGIS License Manger,再安装ArcGIS for Desktop。如果你是第一次安装,最好不要搞反了顺序。(如果你是老手,这个顺序其实也是可以反的

ArcGIS发布要素服务_第1张图片
安装arcgis 10.2.2 Desktop

2.3 安装ArcGIS Server 10.2.2

这个过程很简单,比安装ArcGIS Desktop还要简单。唯一需要注意的是授权文件,记得保留着,后面创建企业级地理数据库时还需要它。

三、利用ArcGIS Desktop发布要素服务

要素服务与数据库的关系大致如下图,如果看不明白不要紧。接着往下看。


ArcGIS发布要素服务_第2张图片
要素服务与数据库的关系

3.1 创建企业级地理数据库

从ArcGIS desktop中创建地理数据库,创建好的数据表实际上存放在Sql Server中(假设你用的Sql Server)。

(1)打开arcmap,然后打开ArcToolbox窗口,依次找到【Data Management Tools】->【Geodatabase Administration】->【Create Enterprise Geodatabase】,打开创建企业级地理数据库的对话框。


ArcGIS发布要素服务_第3张图片
创建企业级地理数据库

(2)这里我创建一个名字为Test的企业级地理数据库,创建好之后在Sql Server中可以看到名称为Test的数据库。按照下图的步骤依次填入对应的值或者选择对应的文件。最后点击【OK】按钮。

ArcGIS发布要素服务_第4张图片
创建企业级地理数据库-对话框

(3)sql server中查看创建好的地理数据库
利用Microsoft Sql Server Management Studio,连接至Sql server的后台,可以看到新出现了一个Test数据,就是我们刚才新建的Test地理数据库。Test数据库下有不少由arcgis创建的表。

ArcGIS发布要素服务_第5张图片
sql server中查看地理数据库

(4)目前在ArcMap中我们无法看到刚才创建的地理数据库Test。我们可以通过添加一个连接,将ArcMap连接至Sql Server。具体方法是:
打开Catalog,展开Database Connections组,点击【Add Database Connection】,设置好相应的值,在Database栏选择刚才创建的Test数据库。点击【OK】,就会看到带红×的数据库连接,双击该数据库连接,就可以连上sql server数据库了。

ArcGIS发布要素服务_第6张图片
添加数据库连接
ArcGIS发布要素服务_第7张图片
数据库连接参数设置
ArcGIS发布要素服务_第8张图片
连接结果

直到目前为止,刚才创建的企业级地理数据库Test里面什么数据也没有,还是空的。下面,我们要加点数据进去。

3.2 添加数据至企业级地理数据库

(1)在刚才的设置的数据库连接【Connection to DESKTOP-3BAHAU6 (3).sde】上右键单击,选择【Import】-【Feature Class(single)】,导入单个要素类(当然你也可以一次性导入多个)。设置导入参数,就可以导入了。导入后可以看到数据库连接下有一个【Test.DBO.NewTest】,这就是我们刚才导入的要素类,现在它已经放到了sql server数据库中了。我们可以将其拖到到ArcMap工作区,就可以看到Test地理数据库中存放的要素类和原始的要素类数据是一样的。只是Test地理数据库是放在Sql Server中,而原始的要素类数据可能是文件或其他形式。

ArcGIS发布要素服务_第9张图片
导入要素类

ArcGIS发布要素服务_第10张图片
导入要素类对话框

导入后结果

3.3 发布要素服务

(1)将刚才新建的数据库连接下的要素类【Test.DBO.NewTest】拖拽至ArcMap工作区。现在就可以看到该要素类了,设置要素类的显示样式。
(2)点击【File】->【Share as】->【Service】,进入发布要地图服务的流程。
后续的对话框中选择【Publish a service】,设置【Service name】,下一步我选择创建一个新的文件夹(当然也可以不创建)。

ArcGIS发布要素服务_第11张图片
Publish a service

ArcGIS发布要素服务_第12张图片
设置Service name

ArcGIS发布要素服务_第13张图片
发布文件夹

(3)在Service Editor对话框中,依次点击【Capabilities】-->勾选【Feature Access】,然后 点击右上方的【Analyze】按钮。分析我们发布的要素服务存在的问题
ArcGIS发布要素服务_第14张图片
Service Editor

(4)可以发现,点击【Analyze】后下方确实出现了一个问题列表,其中还有错误。错误提示我们 要素服务需要一个注册数据库
ArcGIS发布要素服务_第15张图片
发布问题列表

双击该错误,弹出注册数据库的对话框。在Registered Databases一栏,点击右侧的+号,点击【Register Database】,然后依次设置各个对话框的值,如下图所示。


ArcGIS发布要素服务_第16张图片
添加注册数据库
ArcGIS发布要素服务_第17张图片
注册数据库的名称
ArcGIS发布要素服务_第18张图片
注册数据库参数设置
ArcGIS发布要素服务_第19张图片
完成数据库注册

(5)回到【Service editor】对话框,再次点击【Analyze】按钮,可以发现这次没有错误了,可以点击【Publish】按钮发布地图服务至ArcGIS Server了。

3.4 检查发布结果

打开浏览器,输入:http://localhost:6080/arcgis/manager,进入ArcGIS Server管理界面。找到刚才发布的test服务文件夹,可以看到发布的服务NewTest。点击进去查看详细信息。

ArcGIS发布要素服务_第20张图片
test服务文件夹

点击左侧的【功能】选项卡,点击【Feature Access】,下面URL栏出现的REST URL地址 http://localhost:6080/arcgis/rest/services/test/NewTest/FeatureServer 即为在ArcGIS API for JavaScript中的调用地址。

ArcGIS发布要素服务_第21张图片
要素服务REST URL地址

当然,你也可以点击【地图(始终启用)】,下面的REST URL就会变为地图服务的地址,类似于:http://localhost:6080/arcgis/rest/services/test/NewTest/MapServer 其中从MapServer即可看出是地图服务。

至此,ArcGIS发布要素服务讲解完毕。已经很详细了。
后面会讲解发布GP服务,以及在ArcGIS API for JS 4.13中调用的一些问题。


参考链接:

  • 从 ArcGIS 中连接 SQL Server
  • https://www.cnblogs.com/zfygiser/p/6599409.html
  • ARCSDE直连与服务连接架构

你可能感兴趣的:(ArcGIS发布要素服务)