Skip To Content

地理处理服务示例:行驶时间面

需要 Network Analyst 许可。

复杂程度: 中级数据要求: ArcGIS Tutorial Data for Desktop数据路径: C:\arcgis\ArcTutor\GP Service Examples\Network Analyst\DriveTimePolygons 目标: 创作、发布和使用一个围绕指定点且基于行驶时间来创建面的地理处理服务。

文件夹

DriveTimePolygons

权限用途

根据给定的行驶时间值围绕输入点创建行驶时间(或行驶距离)面

服务

DriveTimePolygonsService(地理处理服务)

地理处理任务

计算行驶时间面

输入

  • 代表设施点的数字化点
  • 一组以空格分隔的代表行驶时间或行驶距离的值
  • 时间或长度单位,其定义一组以空格分隔的值的单位,并指定服务是否会生成行驶时间或行驶距离面
  • 选择输出圆盘或圆环

输出

同每个设施点的输入行驶时间或行驶距离相对应的一个面

数据

使用 ToolData 文件夹中提供的旧金山地区的街道网络数据集

扩展模块

ArcGIS Network Analyst

注释

演示了建立服务器任务并将其用于生成服务区所需的基本步骤(这些步骤类似于分别使用求解车辆配送查找最近设施点地理处理工具设置车辆配送服务或查找最近服务。)

关于本示例

对应的文件夹

本教程的数据可从 ArcGIS.com 下载。提取数据至 C:\arcgis\ArcTutor。模型和一些对应的数据存储在 C:\arcgis\ArcTutor\GP Service Examples\Network Analyst\DriveTimePolygons 下。此模型中网络分析图层引用的网络数据集存储在 SanFrancisco 地理数据库中,该数据库位于 C:\arcgis\ArcTutor\GP Service Examples\Network Analyst\DriveTimePolygons 下。

关于“计算行驶时间面”任务

“计算行驶时间面”任务的主要目的是围绕用户指定的点创建行驶时间面。行驶时间面是一个包含可在特定行驶时间范围内到达用户指定点的所有街道的区域。行驶时间面可用于估算某点相对于其他要素的可到达性。例如,可以使用围绕某个杂货店位置的一分钟、两分钟和三分钟的行驶时间面来确定哪些人最有可能在该杂货店购物。

计算行驶时间面任务的输出示例
计算行驶时间面任务的输出示例

有两个地理处理工具可创建服务区:创建服务区图层生成服务区。本例使用生成服务区,因为其设计目的就是便于建立服务区服务以及优化服务器环境下的求解程序性能。生成服务区的另外一个优点在于它提供限制参数,它通过限制客户端请求的服务区问题的大小来限制服务器处理和带宽的使用。例如,本例将最大设施点参数设为 10,于是服务器会自动拒绝任何要解决多于 10 个设施点服务区问题的请求。

数据

本示例的网络数据集位于 C:\arcgis\ArcTutor\GP Service Examples\Network Analyst\SanFrancisco.gdb,地图文档、工具箱和其他补充性数据存储在 C:\arcgis\ArcTutor\GP Service Examples\Network Analyst\DriveTimePolygons 下。

DriveTimePolygons 文件夹的内容
DriveTimePolygons 文件夹的内容

网络数据集

Network Analyst 文件夹包含一个文件地理数据库 SanFrancisco.gdb。在 Transportation 要素数据集内是一个网络数据集 Streets_ND。该网络数据集为旧金山地区的街道网络建立模型。它提供了若干网络属性,其中包括 TravelTimeMeters,前者表示沿街段行驶所需时间(单位为分钟),后者表示各街段的长度。

工具箱和地图文档

地理处理服务的工具箱是 DriveTimePolygonsService.tbx

包括了两个地图文档 DriveTimePolygonsService.mxdUsingDriveTimePolygonsService.mxd,以从这个工作流主题中删除次要步骤,例如增加图层、在研究区域周围调整地图范围等等。

模型

模型概览

位于 DriveTimePolygonsService 工具箱中的 Calculate Drive-Time Polygons 模型如下图所示。此模型有四个输入变量:

  • Input Facilities 是要生成的行驶时间面的中心。(在网络分析中,设施点是网络上的任意固定位置,例如建筑物或您的当前位置。)
  • 中断值是一组以空格分隔的行驶时间或行驶距离值。
  • 中断单位指定中断值的单位并决定是否生成行驶时间或行驶距离面。选择时间单位时生成行驶时间面;选择长度单位则生成行驶距离面。
  • 面重叠指定各中断值是从设施点 (DISKS) 生成,还是从最后一个中断的末端 (RINGS) 生成。此变量仅影响每个设施点有多个中断的服务区的输出。

该模型的生成服务区工具将创建一个服务区网络分析图层、将用户数字化的点作为设施点添加,并执行求解操作,输出行驶时间面。

元素类型说明

设施点

要素集(点),输入参数

用于确定行驶时间面的点要素

中断值

字符串、输入参数

一组以空格分隔的行驶时间或行驶距离值

中断单位

字符串、输入参数

中断值单位

面重叠类型

字符串、输入参数

指定当存在多个中断值时是否以圆盘或圆环建立同心服务区面

面障碍

要素集(面)

面要素,其禁止遍历或测量面要素覆盖的网络边缘的成本

线障碍

要素集(线)

线要素,其禁止遍历或测量面要素覆盖的网络边缘的成本

点障碍

要素集(点)

点要素,增加成本或禁止在网络上通过点遍历

Streets_ND

网络数据集图层

计算服务区所在的网络数据集图层

属性参数值

记录集

参数化网络属性的参数值

生成服务区

工具

创建和求解服务区分析

SolveSucceeded

布尔型

表示求解是否成功的派生输出

要素图层,输出参数

代表服务区的输出面图层

模型元素
Calculate Drive Time Polygons 模型

工作流概述

将服务区求解程序作为地理处理服务发布的常规工作流如下:

  1. 向模型构建器添加生成服务区
  2. 决定您可以让客户端对哪些参数设置值,然后将其显示为模型参数。
  3. 在模型的项目描述 对话框中提供参数。
  4. 在 ArcMap 中运行一次模型。
  5. 从 ArcMap 的结果 窗口中,将模型发布为地理处理服务。

使用网络数据集图层

将旧金山地区的网络数据集作为网络数据集图层 (Streets_ND) 添加到地图文档 DriveTimePolygonsService 中。该图层在模型中作为生成服务区工具的输入变量使用。使用网络图层将会显著地减少模型的总执行时间,因为网络数据集图层会始终打开网络数据集的连接。而如果从网络数据集的磁盘位置引用网络数据集,则只会在每次执行模型时建立与网络数据集的连接,这将降低使用该模型创建的地理处理服务的性能。

内容列表中的网络数据集图层
内容列表中的网络数据集图层
在模型中使用网络数据集图层
在模型中使用网络数据集图层

建模流程

生成服务区工具可创建服务区网络分析 (NA) 图层,该图层存储分析属性、引用供分析使用的 Streets_ND 网络数据集图层,并保存输入设施点和输出面。网络数据集有一个名为 TravelTime 的网络成本属性,该属性指定穿过每条街段所需的行驶时间。类似地,它有一个称为 Meters 的成本属性,该属性指定每条街段的长度。在分析中引用这两个成本属性可生成行驶时间面或行驶距离面。所引用的成本属性取决于中断单位变量是设为时间单位还是距离单位:时间单位使用的是 TravelTime 属性,距离单位使用的是 Meters 属性。该工具处理任何可能需要的单位转换。

默认中断值从 中断值 变量中读取,该变量是一组以空格分隔的值。

对于此服务,使用 NO_MERGE 选项可为每个设施点创建不合并的叠置面。

设施点 参数是一种要素集数据类型,因此模型可以交互式接受用户数字化的点作为设施点。

该工具可根据输入参数中指定的选项计算服务区,然后生成行驶时间面。计算的面将写入输出面图层中。

服务功能

工具对话框的服务功能部分的参数用于限制对客户端请求的处理和存储要求。它们可触发某些行为。例如,由于此模型的最大设施点参数设为 10,生成的服务会检查用户创建了多少个设施点。如果设施点小于等于 10 个,就会生成服务区;但是,如果多于 10 个,服务会马上终止。

所有其他服务功能参数的使用方法类似,在中断时间值范围外强制分级在中断距离值范围外强制分级除外。后两个参数被禁用,因为这个旧金山网络数据集没有等级属性。如果情况如此,而且未选中在分析中应用等级参数,传递的中断值较大时可强制使服务区成为等级服务区。这是有好处的,因为等级服务区尽管不太准确,但比非等级服务区需要的处理远远要小。

服务功能参数
服务功能参数

项目描述

通过记录地理处理模型的项目描述,您同时也记录了生成的服务及其参数,因为发布向导会将这些文本复制到服务的项目描述中。必须描述或记录服务,同时也帮助用户了解如何成功与服务进行交互以及如何生成服务区。此示例的模型已编辑了文档;如需检查,可以右键单击目录 窗口的地理处理模型并选择项目描述

发布

地理处理服务按如下描述的方式发布。

  1. 打开 DriveTimePolygonsService.mxd。教程数据的默认存储位置是 C:\arcgis\ArcTutor\GP Service Examples\Network Analyst\DriveTimePolygons
  2. 运行 Calculate Drive-Time Polygons 地理处理模型。
    1. 目录 窗口中,展开 DriveTimePolygonsService.tbx,然后双击 Calculate Drive-Time Polygons 工具。
    2. 计算行驶时间面 工具对话框中,单击设施点旁的符号,然后在地图上单击以添加设施点。
    3. 单击确定生成服务区。
  3. 单击地理处理 > 结果以打开结果 窗口。
  4. 结果 窗口中,展开当前会话
  5. 右键单击 CalculateDriveTimePolygons(随后是模型运行的时间和日期)并选择共享为 > 地理处理服务
  6. 共享为服务 对话框,单击下一步
  7. 在下拉列表中选择带发布者功能的 ArcGIS Server 连接,或使用下拉列表右侧的按钮建立一个连接。
  8. 单击下一步
  9. 选择将服务发布至根文件夹或指定其他文件夹,然后单击继续

    将弹出服务编辑器 对话框。复制地理处理模型项目描述的文本以描述服务。此文本显示在对话框的项目描述部分以及其紧靠上方的部分(设施点中断值等等)以供编辑。

  10. 单击位于服务编辑器 对话框左面板内的参数,再从消息级别下拉列表中选择警告

    当作为服务的一部分运行模型时出现的错误或警告消息会报告给客户端。

  11. 您可能需要单击池化选项卡并增加客户端可使用一个服务的最长时间;这取决于您期望服务器使用多长时间求解其最大服务区的请求。您可以保留此服务的默认值,但对其他服务区服务可能有一些因素需要增加默认值,包括允许多个中断、长中断值,或对较大网络允许多个设施点;忽略网络等级;修剪面;或创建详细的面。求解的总时间也和服务器的处理速度有关。
  12. 单击分析 分析可查看发布程序 窗口的所有警告或错误消息。

    如果您未创建数据存储,就会收到数据将复制到服务器上的警告。您也可能收到其他消息。警告可以忽略掉,而错误不能。右键单击发布程序 窗口的任意错误消息以得到关于如何解决这些错误的帮助信息。

  13. 服务编辑器 对话框上单击发布 发布

    会立即出现一个对话框,告知您 Streets_ND 将会复制到服务器中。服务成功发布后,会出现成功 对话框。

  14. 单击确定

使用

  1. 打开 UsingDriveTimePolygonsService.mxd

    注意,此地图显示的是 ArcGIS Online 底图图层,并缩放至旧金山。

  2. 通过目录 窗口创建与 ArcGIS Server 的用户连接(如果不存在此类连接)。
  3. 展开用户连接,然后展开 DriveTimePolygonsService.tbx 工具箱。
  4. 双击以打开“计算行驶时间面”工具。
  5. 添加点以创建设施点位置。
  6. 2 3 4 指定为行驶时间值,然后单击确定运行任务。

    ArcGIS for Server 收到请求;求解分析;返回一个图层,其中包含生成的服务区的面。

  7. 选中面图层以使其可见。

    利用此时机检查结果 窗口中的任务结果。

    或者,可再次运行分析,但要添加 10 个以上的设施点来检查服务功能是否阻止请求。

相关主题