GP 服务示例:行驶时间面

复杂性:中级 数据要求:ArcGIS 教程数据安装程序 数据路径: C:\ArcGIS\ArcTutor\GP Service Examples\DriveTimePolygons 目标: 创作、发布和使用围绕指定点且基于行驶时间来创建面的地理处理服务。

文件夹

DriveTimePolygons

目的

根据给定的行驶时间值围绕输入点创建行驶时间面

服务

  • SanFranciscoBaseMap(地图服务)
  • DriveTimePolygonsService(地理处理服务)

地理处理任务

计算行驶时间面

输入

一个数字化点和一组以空格分隔的行驶时间值(以分钟为单位)。

输出

一个行驶时间面,该面对应于所有点的各个输入行驶时间值。

数据

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

扩展模块

Network Analyst

注释

演示执行任何网络分析工作流所需的基本步骤。

关于本示例

对应的文件夹

C:\arcgis\ArcTutor\GP Service Examples\DriveTimePolygons 包含完整的模型和数据。

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

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

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

数据

本示例的数据来自 C:\arcgis\ArcTutor\GP Service Examples\DriveTimePolygons

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

网络数据集

ToolData 文件夹中包含一个文件地理数据库 SanFrancisco.gdb。该地理数据库的 Transportation 要素数据集中包含网络数据集 Streets_ND。该网络数据集为旧金山地区的街道网络建立模型。它提供了一个网络属性 TravelTime(除了别的属性外),该属性指示穿过每条街段所需的行驶时间(以分钟为单位)。

底图

SanFranciscoBasemap.mxd 中的底图图层有一个图层 Streets,如下图所示。该图层显示网络数据集的范围。这意味着,该任务只能在这一范围内确定行驶时间面。

显示网络数据集范围的旧金山底图
显示网络数据集范围的旧金山底图

SanFranciscoBaseMap.mxd 将作为地图服务发布。

工具箱和地图文档

该地理处理服务的工具箱和源地图文档分别为 DriveTimePolygonsServiceDriveTimePolygonsService.mxdDriveTimePolygonsService.mxd 中包含一个源数据图层 Streets_ND(网络数据集)。

模型

模型概览

Calculate Drive Time Polygons 模型如下所示。此模型有两个输入变量:

  • Input Facilities 是要生成的行驶时间面的中心。(在网络分析中,设施点是网络中的任意一个固定位置,例如,建筑物或您当前所处的位置。)
  • Drive Time Values 是一组用空格分隔的行驶时间值(以分钟为单位)。

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

元素

类型

描述

Streets_ND

网络数据集图层

网络数据集图层。

Drive Time Values

字符串、输入参数

一组以空格分隔的行驶时间值(以分钟为单位)。

Make Service Area Layer

工具

创建一个服务区网络分析图层。此图层将包含用来确定服务区计算方式的数据和属性,另外还将包含计算结果。

Service Area

网络分析图层

服务区图层。

Input Facilities

要素集(点),输入参数

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

Add Locations

工具

将输入点作为设施点添加到服务区图层。

Service Area (2)

网络分析图层

包含设施点的服务区图层。

Solve

工具

计算行驶时间面。

Service Area (3)

网络分析图层

包含计算所得的行驶时间面的服务区图层。

SolveSucceeded

布尔

求解工具获得的输出,用于指示求解是否成功。

Select Data

工具

从服务区图层中选择 polygons 子图层。

Polygons

要素图层,输出参数

服务区 (3) 网络分析图层中的面图层。

模型元素
Calculate Drive Time Polygons 模型

网络分析工作流

该模型说明了执行任意类型的网络分析时经常使用的四步工作流。

  1. 构建网络分析图层。
  2. 将位置添加到一个或多个网络分析类。
  3. 求解网络分析图层。
  4. 使用求解后所得的结果。

使用网络图层

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

使用网络数据集图层
使用网络数据集图层

建模流程

创建服务区图层工具可创建新的网络分析 (NA) 图层 ServiceArea,该图层存储分析属性、引用供分析使用的 Streets_ND 网络数据集图层,并保存输入设施点和输出面。网络数据集有一个名为 TravelTime 的网络成本属性,该属性指定穿过每条街段所需的行驶时间。该属性用作阻抗属性。默认中断值从 Drive Time Values 变量中读取,该变量是一组以空格分隔的值。

“创建服务区图层”工具参数
“创建服务区图层”工具参数

对于此服务,使用 NO_MERGE 选项可创建对于每个设施点均不合并的叠置面。使用 RINGS 选项时,对于每个行驶时间值来说,面都会被绘制为环形。结果是,所生成的面包含前一中断值到该中断值之间的区域,而不包括较小中断的区域。

添加位置工具会将用户数字化的点作为设施点添加到服务区图层。Input Facilities 参数是一种要素集数据类型,因此模型可以交互式接受用户数字化的点作为设施点。要素集的方案和符号系统派生自 ToolData 文件夹中的 InputFacilities.lyr 文件。

对输入设施点使用要素集
对输入设施点使用要素集

求解工具可根据输入服务区图层中指定的选项计算服务区,然后生成行驶时间面。计算出来的面会被写入输出服务区图层中的“面”子图层。

对于 ArcGIS Server 客户端来说,网络分析图层不是受支持的输出参数数据类型。因此,需要使用选择数据工具从服务区图层中检索“面”子图层。Polygons 子图层是要素图层数据类型。

工具图层

Calculate Drive Time Polygons 工具图层是通过将模型拖动到 ArcMap 内容列表中来创建的。应在发布模型之前通过以下方式测试模型:

  1. 创建工具图层。
  2. 右键单击工具图层,然后单击打开。将打开工具对话框。
  3. 输入一个点和行驶时间距离,例如 1 2 3,然后单击确定

    行驶时间面将作为子图层添加到工具图层。

Calculate Drive Time Polygons 模型的输出是要素图层。模型输出要素或栅格图层时,输出图层将按原样添加到工具图层,这意味着您在工具子图层中定义的符号系统将被忽略。可通过尝试以下操作来确认这一点:

  1. 在打开和执行工具图层之后,右键单击 Polygons 子图层并单击属性
  2. 单击符号系统选项卡。
  3. 将符号系统更改为单个符号(例如,一个蓝色的面填充符号)。

    此时,Polygons 子图层以单一颜色(而不用分级色彩)进行绘制。

  4. 打开工具图层并执行。

    Polygons 子图层将再次以分级色彩来绘制。

正如为地理处理任务定义输出符号系统主题中所述,当模型输出图层时,图层中符号系统的优先级要高于工具图层的符号系统。使用此规则的理由是,某些工具(如创建服务区图层)可输出包含自定义符号系统的图层。为了保留该自定义符号系统,必须忽略工具子图层中的符号系统。如果想要更改行驶时间面的符号系统,Calculate Drive Time Polygons 模型必须输出要素类而不是要素图层。这可通过以下操作轻松实现:将复制要素工具添加到模型,并使用 Polygons 变量作为复制要素的输入。

发布

SanFranciscoBaseMap.mxd 将作为地图服务发布。DriveTimePolygonsService.mxd 将作为不含任何结果地图服务的地理处理服务发布,具体操作如下所述:

  1. 目录 窗口中,右键单击 SanFranciscoBaseMap.mxd,然后单击发布到 ArcGIS Server
  2. 接受所有默认设置。
  3. 目录 窗口中,导航到 GIS 服务器节点下的服务器管理连接,右键单击,然后选择添加新服务。将服务命名为 DriveTimePolygonsService,然后选择地理处理服务作为服务类型。
  4. 单击下一步
  5. 在下一个面板中,选择异步作为执行类型。对于地理处理服务所显示的工具存储于选项,选择地图并为地图文档指定 DriveTimePolygonsService.mxd。由于要测试服务,因此请选中显示消息
    发布 DriveTimePolygonsService
    发布 DriveTimePolygonsService
  6. 单击下一步。此后,便可接受向导提供的默认值并创建服务。

使用

  1. 以空白文档启动 ArcMap。
  2. 通过目录 窗口创建与 ArcGIS Server 的用户连接(如果不存在此类连接)。
  3. SanFranciscoBaseMap 地图服务添加到 ArcMap 内容列表。
  4. 目录 窗口中的 GIS 服务器用户连接节点下,展开 DriveTimePolygonsService 工具箱,然后双击它以打开“计算行驶时间面”工具。下图显示了执行以上步骤后的结果:
    ArcMap 会话中的“计算行驶时间面”任务
  5. 添加一个用于创建设施点位置的点。将 2 3 4 指定为行驶时间值,然后单击确定运行任务。

    完成任务后,内容列表中将包含 Polygons 输出图层,如下图所示。

    完成的任务
    完成的任务
  6. 可利用这个机会在结果 窗口中检查任务的结果,如下图所示。
    任务结果
    任务结果

相关主题


3/7/2012