Skip To Content

使用 ArcMap 中的地理处理服务

地理处理服务包含一个或多个任务。任务与地理处理工具在接受参数和返回结果方面较为相似;任务是 ArcGIS API for JavaScript 用来描述在服务器上工作并返回结果的例程的术语。地理处理服务和工具箱之间以及任务和工具之间并没有实际区别。只有对于其他 ArcGIS Server 客户端(如 Web 浏览器和基于 Internet 的其他软件)才存在区别。

连接到 GIS Server 站点

第一步是连接到 ArcGIS Server 站点。请在目录窗口中执行以下操作:

  1. GIS 服务器节点创建发布者 GIS Server 连接。
  2. 可右键单击任一文件夹,然后单击新建 > ArcGIS Server 连接,以便在该文件夹中创建连接。

查找地理处理服务的 URL

在连接到 ArcGIS Server 时,您需要 URL 链接、用户名和密码。所有服务(包括地理处理服务)都必须将 SOAP URL 和 ArcMap 结合使用。您可以通过以下任意一种方法来获取服务的 URL:

  • GIS Server 站点由您所在的组织负责托管,而且您知道该 URL。
  • 从同事处获得此 URL。
  • ArcGIS Online 中搜索地理处理服务,并且找到一个包含要使用任务的服务。您可按照以下方式获得提供服务的服务器的 URL:
    • ArcGIS Online 中服务的描述信息中具有一个包含 URL 的 ArcGIS Web API REST 连接条目。此 URL 用于使用 REST 连接到服务。要连接到 ArcGIS 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/servicesrest 为服务名称,gpserver 已从 SOAP URL 中移除)。
    • 使用此 SOAP URL 创建一个服务器的用户连接。创建完连接后,在目录树中浏览服务器目录,以查找地理处理服务和任务。

执行地理处理任务

与使用任何其他工具一样,您可在工具对话框、模型构建器或脚本中执行地理处理服务任务。唯一的区别是:如果您正在前台执行工具 (一些任务等待结果从服务器返回,而另一些任务则不会这样做),它们会将任务提交到服务器并偶尔向服务器查询结果。可以通过结果 窗口观察已提交至服务器的任务的状态。下面的同步和异步任务部分对此进行了更为详细的描述。

使用任务结果

地理处理服务的结果将自动添加到结果窗口的当前会话中。如果结果的输出数据类型是文件或栅格数据集,则输出将保存在本地临时目录中。对于要素类等其他数据类型,结果则会写入显示其输出数据集名称或状态的当前会话中。以下是五个状态值:

<空>

仍在服务器上执行工具但不会写入输出,或者,任务未成功运行且无结果返回。此状态仅适用于异步工具。有关详细信息,请参阅下面的同步和异步任务

<本地临时位置中的数据>

工具已完成执行操作,输出数据位于计算机内存或系统临时目录中。只要存在引用该数据的 ArcMap 图层,该数据便不会被删除。如果想要保留数据,则请将数据从临时位置复制到某一已知位置。执行此操作的一种方法便是使用复制工具,将结果中的数据集拖动至此工具的输入要素参数中。另外,也可右键单击输出,然后单击复制位置,从而将要素类的路径复制到剪贴板中,以使您能够将该路径粘贴到接受文本的任何位置,如复制工具的输入要素参数。

<服务器中的数据>

数据位于服务器上,并且存在一个将在 ArcMapArcGlobeArcScene 中绘制数据的结果地图服务。当工具在服务器上完成执行操作后,此结果地图将被自动添加到内容列表中。如果需要将此结果地图服务添加到内容列表中,请右键单击该结果工具,然后单击添加服务器图层

也可右键单击该结果工具,然后单击获取数据,从而将数据从服务器复制到您的计算机中。复制之后,状态将为 <本地临时位置中的数据>、<数据超出传输限制> 或 <数据不可用>。

<数据超出传输限制>

获取数据操作不能将所有数据从服务器复制到您的计算机中,因为要传输的要素的最大数目超出限制。复制大型数据集会降低服务器执行其他 GIS 服务的能力并阻塞网络。因此,服务创建者会指定一个可被从服务器复制到客户端计算机的要素的最大数目。如果需要复制的数据超出限制,则需要联系服务创建者或服务器管理员,然后使用其他方式来获取数据。

<数据不可用>

获取数据操作无法在服务器上找到数据。导致此情况的最可能原因是:服务器管理员确定该任务结果已废弃,从而将数据删除以便释放服务器空间。

环境设置被忽略

地理处理服务明确设置了服务器上影响执行的所有环境设置。在当前会话内设置的 ArcGIS Desktop 的本地环境设置不会影响服务使用的环境设置。

在服务器工具完成执行操作前退出应用程序

异步工具(参见下一节)提交完毕后,即可退出所使用的应用程序。例如,如果您正在 ArcMap 中进行操作,则可开始执行操作,保存地图文档,然后退出 ArcMap。当您稍后打开该文档时,ArcMap 将查询服务器,检查结果状态,然后更新结果窗口中的结果。如果您要使用此方法来开始执行操作并退出 ArcMap(或者 ArcGlobeArcScene),请务必保存地图文档以保存结果供今后查看。

同步和异步任务

地理处理服务及其任务或者为同步,或者为异步。同步意味着,在服务器上执行任务时计算机需要等待。异步意味着,计算机不必等待前一工具完成操作的执行,即可继续执行其他任务。

服务的发布者负责决定是以同步方式执行任务还是以异步方式执行任务。只有那些执行速度快且具有小型输出数据集的任务,才应被发布为同步工具。

要确定服务器工具是同步还是异步,请执行以下操作之一:

  • 如果您要创建 ArcGIS Server 的管理员连接,则可在目录窗口中浏览至服务器,右键单击地理处理服务,然后单击服务属性。工具的执行类型将列在参数选项卡中。
  • 执行工具并观察其写入的消息。在执行异步服务时,所写入的第一条消息将是服务器消息。这些类型的地理处理服务将始终作为后台进程在 ArcMap 中运行。同步工具启动时会显示正在执行消息。下面的两个结果是由异步和同步执行(由 ArcGIS Server 管理员设置)获得的。
异步与同步执行比较

当您在 ArcMap 中执行某个异步工具并启用了向显示画面添加工具结果的操作时,一个图层将被添加到显示画面,但却无法显示(已选中)。这是因为 ArcMap 无法识别该工具何时完成操作的执行以及何时绘制输出。

系统不会自动通知您异步工具将在何时完成操作的执行。您可在结果窗口中跟踪异步工具的进度。工具执行时,一个沙漏图标将显示在结果旁边。可通过右键单击结果并单击取消,来取消操作的执行。任务完成时,将显示成功消息,而且会在结果的任务名称旁显示工具图标。