Skip To Content

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

需要 Network Analyst 许可。

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

文件夹

DriveTimePolygons

用途

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

服务

DriveTimePolygonsService(地理处理服务)

地理处理任务

Calculate Drive-Time Polygons

输入

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

输出

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

数据

使用 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.gdbTransportation 要素数据集内是一个网络数据集 Streets_ND。该网络数据集为旧金山地区的街道网络建立模型。它提供了若干网络属性,其中包括 TravelTimeMeters,前者表示沿街段行驶所需时间(单位为分钟),后者表示各街段的长度。

工具箱和地图文档

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

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

模型

模型概览

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

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

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

元素类型说明

Facilities

要素集(点),输入参数

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

Break Values

字符串、输入参数

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

Break Units

字符串、输入参数

中断值单位

Polygon Overlap Type

字符串、输入参数

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

Polygon Barriers

要素集(面)

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

Line Barriers

要素集(线)

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

Point Barriers

要素集(点)

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

Streets_ND

网络数据集图层

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

Attribute Parameter Values

记录集

参数化网络属性的参数值

生成服务区

工具

创建和求解服务区分析

SolveSucceeded

布尔型

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

Polygons

要素图层,输出参数

代表服务区的输出面图层

模型元素
Calculate Drive Time Polygons 模型

工作流概述

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

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

使用网络数据集图层

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

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

建模流程

生成服务区工具用于创建服务区 Network Analyst (NA) 图层,该图层会存储分析属性、引用供分析使用的 Streets_ND 网络数据集图层,以及存储输入设施点和输出面。网络数据集有一个名为 TravelTime 的网络成本属性,该属性指定穿过每条街段所需的行驶时间。类似地,它有一个称为 Meters 的成本属性,该属性指定每条街段的长度。在分析中引用这两个成本属性之一,即可生成行驶时间面或行驶距离面。所引用的成本属性取决于将 Break Units 变量设置为时间单位还是距离单位:时间单位使用的是 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 Server 会收到请求;求解分析;然后,返回面图层,其中包含生成的服务区。

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

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

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

相关主题