概念
在开始学习创建地理处理服务之前,您应该了解以下内容:
创建地理处理服务的要求是什么?
模型构建器 创建模型。创建的模型是一个由多个地理处理工具以及可帮助您实现 GIS 自动化操作的脚本组成的逻辑序列。模型中包含多个地理处理工具,并根据需要可加入您所编写的用于帮助自动化处理的脚本。通常,不能将一个工具或脚本发布为地理处理服务,而只能发布地理处理模型。不过,您可以发布仅包含一个工具或脚本的模型。
什么是模型构建器学起。
模型中可以使用哪些类型的数据?
地理处理服务的关键概念主题中,您可以找到这些策略以及所有支持的数据类型的列表。
服务器作业目录
在安装 ArcGIS Server 时,会为地理处理服务的执行创建一个目录。这就是服务器作业目录,默认情况下,位于 c:\arcgisserver\arcgisjobs。当使用地理处理服务时,模型所产生的中间数据和输出数据都会存储在服务器作业目录中。每次执行模型或作业都会在服务器作业目录中创建唯一的专属文件夹。这就允许多个用户同时使用同一服务且不会产生混乱。
因为服务器作业目录负责管理中间数据和输出数据,所以您无需担心在模型环境中设置临时工作空间和当前工作空间的问题。
实现过程
该示例引导您了解简单模型的构建、将模型发布为地理处理服务以及在 Web 制图应用程序中运行此服务的整个过程。步骤中还给出了使用地理处理服务的相关提示和最佳做法。
构建模型
该示例中将要创建的模型会用到两个工具:缓冲区工具和裁剪工具。若要运行模型,需要交互式地定义一组地图上的点以及缓冲距离。模型运行时,将根据所指定的距离对这些点做缓冲区分析。如果要排除海洋中的区域,模型将在之后按照表示海岸线的要素类的形状裁剪生成的缓冲区。
要构建该模型,可使用您所拥有的任何数据,但最好是一个表示边界或海岸线的要素类,这样就可以按照这个要素类进行裁剪。该示例中的插图所使用的是加利福尼亚州圣地亚哥市的数据。模型将数据按照要素类 Land 进行裁剪。
图层文件,其中包含输入点使用的符号系统。
请按照以下步骤构建模型:
- 确定,打开一个新的空白地图。
- 目录 窗口中,浏览至已选择的用于本教程数据处理的磁盘位置并新建一个名为 scratch 的文件夹。如果数据存储在本地配置文件中(例如,C:\Documents and Settings\<user name>\...),请将它移出配置文件,使其更接近于磁盘根目录(例如,C:\Data\GeoprocessingTutorial)。
- 环境设置。
- 当前工作空间的复选框。
- 环境设置。在本教程后面的部分中您将看到,临时工作空间用于存储模型运行过程中所创建的中间数据。
-
启用复选框。
禁用后台处理便于在 ArcMap 中设计模型时可方便地运行模型。本教程在模型设计过程中并不包括运行模型这一步,但是一旦需要在设计阶段运行您自己的模型,那么就需要包括该步骤。
- 将地图文档保存在本教程中所使用的数据当前存放的文件夹中。该文件夹将作为地图的主目录文件夹。
-
GeoprocessingTutorial。该名称之后会自动追加 .tbx 扩展名。
-
模型。默认情况下,名称即为“模型”。您可在之后更改此名称。
- 缓冲区。
-
模型构建器 窗口。
警告:
ArcGIS 中有两种缓冲区工具。请确保您所使用的缓冲区工具来自于工具箱\系统工具箱\分析工具。
- 输入要素,获取第一个变量。名为“输入要素”的椭圆会出现在模型中并与“缓冲区”工具相连。
- 模型参数。模型参数是最终用户运行模型时可输入的内容和参数设置。
-
图层文件,还可为输入点指定要使用的符号系统。
- 线性单位。在变量创建完毕后,请双击该变量并设置一个默认值(例如,如果使用圣地亚哥的数据,那么 2 千米可能是比较合适的默认缓冲距离)。
- 变量,在此例中,它可确保中间数据能够写入临时位置。如果是在 ArcMap 中运行模型,该临时位置即为您在本教程开始部分所创建的临时文件夹。如果是在服务器中运行模型,该临时位置即为服务器作业目录。
-
重命名。
您可能需要四处拖动各模型组件,以方便查看全部信息。您的模型应如下图所示:
-
裁剪工具并将它拖动到模型的右侧。
警告:
ArcGIS 中提供了多种裁剪工具。请确保您所使用的裁剪工具来自于工具箱\系统工具箱\分析工具。
- 输入要素。
-
裁剪要素设置为进行裁剪所依据的边界要素类或海岸线要素类。该示例使用 Land 要素类消除位于海洋中的缓冲区域。
提示:
请记住裁剪要素所在的位置。当您发布地理处理服务时,请务必确保 SOC 帐户具有对该位置的访问权限。
- %SCRATCHWORKSPACE%\ClippedBuffers.shp。
- 添加至显示。
-
模型构建器 窗口。
- BufferAndClip。
- 请保存地图文档并继续进入到下一部分。
准备模型和关联地图以发布服务
既然已创建好模型,就可以按照接下来的步骤,在 Web 应用程序中使用它的功能。此时,您需要思考将要在 Web 应用程序中做哪些工作。Web 应用程序可通过两种方式绘制模型结果:它可将结果数据发送到客户端,在客户端上绘制结果,或者在服务器上绘制结果之后再将完成的图像发送到客户端。
定义地理处理任务的输出符号系统中列出的少量其他符号类型。制图线符号、梯度填充符号以及其他类型的复杂符号系统则要求在服务器上绘制结果。
如果在服务器上绘制结果,则可使用类型更加丰富的符号。这是因为地理处理服务会使用关联地图服务对所有符号进行必要的渲染操作。在服务器上绘制结果还有其他的好处,包括可将地图服务中的图层用作模型的输入,以及处理含有大量要素的结果(如果试图将大量要素发送到客户端进行绘制,则可能会非常耗时或者被服务器管理员拒绝)。
下面的示例说明了在服务器上绘制结果的方法,这需要您创建关联的地图服务。您需要创建一个可用于可视化模型的输入内容和结果的地图。创建好地图之后,需要将您的模型作为工具图层添加到地图中。下列步骤说明了该过程:
- 打开之前部分中创建的地图文档并添加一些数据。考虑到本教程的目的,数据中可包含少量的参考数据集。为达到最佳效果,建议不要在该地图服务中包含过多的底图数据,而应该直连至客户端应用程序中的另一个底图服务。
- 覆盖地理处理操作的输出这一选项。
-
接下来通过将模型拖动到 ArcMap 内容列表中来创建工具图层。并将它作为置顶图层。
请记住:在地图中含有工具图层是获得将与地图服务协同工作的地理处理服务的关键所在。
- 打开。
- 确定,运行该模型。
-
模型的输入要素已根据您在模型中配置“输入要素”参数时导入的方案进行了符号化。接下来,请使用图层属性来设置要为输出要素使用的符号系统。
请记住:在该示例中,会使用如下所示的带有角度的线填充符号来符号化输出要素。仅当服务器使用关联地图服务绘制结果时才可使用该符号系统;在客户端上绘制结果时不能使用它。
- 使输出要素(如上所示的 ClippedBuffers)在内容列表中不可见(未选中)。
- 现在已将发布服务所需的一切准备就绪。在继续进行下一部分之前,请保存地图文档并关闭 ArcMap。
发布服务
在获得带有工具图层的地图文档后,就可以将这些内容发布为服务了。您需要将该地图文档发布为服务并启用地理处理功能,这样便可以创建一个与地图文档同名的地理处理服务。您可在 Web 应用程序中使用这两个服务,从而在服务器上运行模型并显示结果。
准备要作为服务发布的资源所提供的指导原则。这些指导原则将帮助您确保服务器具有读取并访问您的模型和地图中的所有数据的权限。特别是,SOC 帐户需要拥有对模型(工具箱)、模型所引用的任何数据(如裁剪要素)、地图文档以及地图文档中的任何数据的读取权限。另外,SOC 帐户还需拥有对服务器作业目录的读取和写入权限。如果您使用的是随 ArcGIS Server 一同安装的默认服务器作业目录 (C:\arcgisserver\arcgisjobs),则在安装过程中就已经为作业目录申请了适当的权限。
请按照以下步骤发布服务:
-
发布地图、globe 或其他 GIS 资源作为服务。
发布 GIS 资源 向导的另一特点就是,您可使用它来创建关联服务,例如将要在该示例中创建的地理处理服务和地图服务。
添加新服务 向导不能用来自动创建关联服务。
- 资源。该资源即为带有工具图层的地图文档。如果该地图文档位于一个共享目录里,则可以通过浏览找到它。如果它没有位于共享位置,请仔细输入此地图文档的路径。
-
下一步,进入到向导的下一页面。
-
下一步,进入到向导的最后一页。
- 完成发布服务并关闭向导。
通过地理处理任务创建 Web 应用程序
将模型展现给其他人的最后一步就是通过地理处理任务创建 Web 应用程序。接下来,您将使用 ArcGIS Server 管理器来创建 Web 应用程序。ArcGIS Server 管理器将帮助您选择要显示的地图服务以及要通过地理处理任务展现给用户的地理处理服务。请按照下列步骤使用管理器创建 Web 应用程序:
- 创建 Web 应用程序。这会进入向导的第一页,该向导将帮助您设置应用程序。
-
下一步。
- 下一步,进入到下一页。
-
确定来添加任务。
-
添加,然后以在前一页中浏览查找地图图层的方式浏览至地理处理服务。
-
配置按钮。在该对话框上,可将任务名称从 Geoprocessing 更改为更具描述性的名称。您还可添加帮助提示,它会在用户将鼠标指针停留在任务上时出现。
如果在您的工具箱中包含多个模型,那么可在此选择其中一个作为任务中出现的模型。每一任务仅可使用一个模型。
地理处理任务部分可帮助理解这些设置,包括结果文件以及同步任务与异步任务。
- 完成来创建 Web 应用程序。
-
通过打开地理处理任务来测试您的 Web 应用程序。定义一些点,然后运行工具,查看裁剪后的缓冲区。