一个地理处理服务往往包含一项或多项任务。任务在接收参数和返回结果方面与地理处理工具没有任何实际区别;任务是 Web API(例如 JavaScript、SilverLight 和 Flex)用于描述在服务器上工作并返回结果的例程的术语。地理处理服务和工具箱之间以及任务和工具之间并没有实际区别;只有对于其他 ArcGIS for Server 客户端(如 Web 浏览器和基于 Internet 的其他软件)才存在区别。
连接到 ArcGIS Server
第一步是连接到 ArcGIS Server。在目录 窗口中
- 可通过 GIS 服务器节点创建一个 ArcGIS Server 连接。
- 可通过右键单击任一文件夹,然后单击新建 > ArcGIS Server 连接,在该文件夹中创建连接。
查找地理处理服务的 URL
在连接到 ArcGIS Server 时,您需要一个 URL 链接并可能需要一个用户名和密码。获取服务 URL 的方式很多。
- ArcGIS Server 由您所在组织负责托管,而且您也熟知该 URL。
- 从同事处获得此 URL。
- 在 arcgis.com 中搜索地理处理服务,并且找到一个包含要执行任务的服务。您可按照以下方式获得提供服务的服务器的 URL:
- arcgis.com 中服务的描述信息中具有一个包含 URL 的 ArcGIS Web API REST 连接条目。此 URL 用于使用 REST 连接到服务。为了在 ArcGIS for Desktop 中连接到服务器,您需要一个 SOAP URL。
- 可根据 REST URL 获取 SOAP URL。例如,如果 REST URL 为:
http://sampleserver.esri.com/arcgis/rest/services/SupplyDemandService/gpserver
则用于创建服务器连接的相应 SOAP URL 为:
http://sampleserver.esri.com/arcgis/services
(从 SOAP URL 中移除 Rest、服务名称和 gpserver)。
- 使用 SOAP URL 创建一个到服务器的用户连接。创建完连接后,在目录 树中浏览服务器目录,以查找地理处理服务和任务。
执行地理处理任务
与使用任何其他工具一样,您可在工具对话框、模型构建器或脚本中执行地理处理服务任务。唯一的区别是:如果您正在前台执行工具(一些任务等待结果从服务器返回,而另一些任务则不会这样做),它们会将任务提交到服务器并偶尔向服务器查询结果。您可通过结果 窗口观察已提交至服务器的任务的状态。下面的同步和异步任务部分对此进行了更为详细的描述。
使用任务结果
地理处理服务的结果将自动添加到结果 窗口的当前会话 中。如果结果的输出数据类型是文件或栅格数据集,则输出将保存在本地临时目录中。对于要素类等其他数据类型,结果则会写入显示其输出数据集名称和/或状态的当前会话中。共有以下五种不同的状态值:
- <空>
仍在服务器上执行工具但不会写入输出,或者,任务未成功运行您无法获取结果。此状态仅适用于异步工具。有关详细信息,请参阅下面的同步和异步任务。
- <本地临时位置中的数据>
工具已完成执行操作,输出数据位于计算机内存或系统临时目录中。只要存在引用该数据的 ArcMap 图层,该数据便不会被删除。如果想要保留数据,则应该将数据从临时位置复制到某一已知位置。执行此操作的一种简单方法是使用复制工具,具体方法是将结果中的数据集拖放至“复制”工具的输入要素参数中。另外,也可右键单击输出,然后单击复制位置,从而将要素类的路径复制到剪贴板中,以使您能够将该路径粘贴到接受文本的任何位置,如复制工具的输入要素参数。
- <服务器上的数据>
数据位于服务器上。这也意味着,存在一个将在 ArcMap、ArcGlobe 或 ArcScene 中绘制数据的结果地图服务。当工具在服务器上完成执行操作后,此结果地图将被自动添加到内容列表中。如果需要将此结果地图服务添加到内容列表中,请右键单击该结果工具,然后单击添加服务器图层。
也可右键单击该结果工具,然后单击获取数据,从而将数据从服务器复制到您的计算机中。复制之后,状态将为 <本地临时位置中的数据>、<数据超出传输限制> 或 <数据不可用>。
- <数据超出传输限制>
获取数据操作不能将所有数据从服务器复制到您的计算机中,因为要传输的要素的最大数目超出限制。复制大型数据集会降低服务器执行其他 GIS 服务的能力并阻塞网络。因此,服务创建者会指定一个可被从服务器复制到客户端计算机的要素的最大数目。如果需要复制的数据超出限制,则需要联系服务创建者或服务器管理员,然后使用其他方式来获取数据。
- <数据不可用>
获取数据操作无法在服务器上找到数据。导致此情况的最可能原因是:服务器管理员确定该任务结果已废弃,从而将数据删除以便释放服务器空间。
环境设置被忽略
地理处理服务明确设置了服务器上影响执行的所有环境设置。在当前会话内设置的 ArcGIS for Desktop 的本地环境设置不会影响服务使用的环境设置。
将服务器任务复制到自定义工具箱
无法将任务从地理处理服务中复制到自定义工具箱(您创建的工具箱)。
在服务器工具完成执行操作前退出应用程序
异步工具(参见下文)提交完毕后,即可退出所使用的应用程序。例如,如果您正在 ArcMap 中进行操作,则可开始执行操作,保存地图文档,然后退出 ArcMap。当您稍后打开该文档时,ArcMap 将查询服务器,检查结果状态,然后更新结果 窗口中的结果。如果您要使用此方法来开始执行操作并退出 ArcMap(或者 ArcGlobe 或 ArcScene),请务必保存地图文档以保存结果以供今后查看。
同步和异步任务
地理处理服务及其任务或者为同步,或者为异步。同步意味着,在服务器上执行任务时计算机需要等待。异步意味着,计算机不必等待前一工具完成操作的执行,即可继续执行其他任务。
服务的发布者负责决定是以同步方式执行任务还是以异步方式执行任务。只有那些执行速度快且具有小型输出数据集的任务,才应被发布为同步工具。
有两种方法可用来确定服务器工具是同步还是异步:
- 如果您具有 ArcGIS for Server 的管理权限,则可在目录 窗口中浏览至服务器,右键单击地理处理服务,然后单击服务属性。工具的执行类型将列在参数选项卡中。
- 执行工具并观察其写入的消息。在执行异步服务时,所写入的第一条消息将是服务器消息。这些类型的地理处理服务将始终作为后台进程在 ArcMap 中运行。同步工具启动时会显示正在执行。下面的两个结果是由异步和同步执行(由 GIS 服务器管理员设置)获得的。
当您在 ArcMap 中执行某个异步工具并启用了向显示画面添加工具结果的操作时,一个图层将被添加到显示画面,但却无法显示(已选中)。这是因为 ArcMap 不知道该工具何时完成操作的执行以及何时绘制输出。
系统不会自动通知您异步工具将在何时完成操作的执行。您可在结果 窗口中跟踪异步工具的进度。工具执行时,一个沙漏图标将显示在结果旁边。可通过右键单击结果并单击取消,来取消操作的执行。任务完成时,将显示表示成功的消息,而且会在结果的任务名称旁显示工具图标。