路径分析图层不仅能查找停靠点和单条输出路径之间的最短路径,还可以执行以下操作:
按指定的顺序找到访问多个停靠点的路径。
找到优化停靠点顺序的路径以缩小总行程。这也称为解决流动推销员问题 (TSP)。
路径选项卡上的顺序属性可以实现对停靠点顺序的优化。
在单个分析中生成多个路径。
使用 RouteName 字段值可以将停靠点分组到单独路径;每组生成一个路径。
在许多点对之间测量行程距离(原点-目标对)。
通勤者 总英里数 Steven
19.9
Annette
32.4
Eli
24.0
Sharon
20.7
通过将匹配的 RouteName 字段值分配到两个停靠点,可将其分成一组并为此停靠点对生成路径。通过为多对停靠点对执行此操作,您可以在一个解决操作中为所有原点-目标对生成距离。
找到最快的整条路径并在一天的某段时间内(如下午 1:00 到 2:00)访问某些停靠点。
可以使用 TimeWindowStart 和 TimeWindowEnd 字段设置停靠点的时间窗。
解决这些问题或其他种类专用路径问题的方法是在路径分析图层上设置属性,并在构成路径分析图层的要素类上设置字段值。
以下内容介绍了路径分析图层及其分析属性与要素类。
停靠点要素类
“停靠点”要素类最初存储访问输出路径的所需位置。运行此分析后,停靠点要素类会存储路径到达的位置、未到达的位置(及未到达的原因)、访问停靠点的顺序以及其他信息。以下各表描述了停靠点要素类的输入字段、输入/输出字段和输出字段:
停靠点:输入字段
输入字段 | 说明 |
---|---|
ObjectID | 系统管理的 ID 字段。 |
Shape | 指示网络分析对象地理位置的几何字段。 |
Name | 停靠点的名称。 向地图添加停靠点后将自动为其分配名称,并且可以对该名称进行编辑。 |
RouteName | 它表示停靠点所属路径的名称。将相同 RouteName 值的停靠点分组在一起。 通过使用此字段,可以将停靠点分组到不同路径,并且输出将尝试为每组停靠点生成一个路径。
|
TimeWindowStart | 该字段存储了可对停靠点进行访问的最早时间。 如果将 TimeWindowStart 设置为 10:00 AM,路径在 9:50 AM 到达停靠点,则需要将 10 分钟的等待时间添加到总时间中。 默认情况下,如果网络数据集具有时区属性,则此字段中指定的日期和时间将引用与停靠点所在的边或街道相同的时区。如果要将日期和时间解释为 UTC,则可以在 Python 中使用 RouteSolverProperties 类更改路径分析图层的 timeZoneUsageForTimeFields 属性。 可以使用创建路径分析图层地理处理工具中的 time_zone_for_time_fields 参数为时间窗口字段指定时区。 |
TimeWindowEnd | 该字段存储了可对停靠点进行访问的最晚时间。 TimeWindowStart 和 TimeWindowEnd 字段共同组成了路径可访问停靠点的时间窗。 如果位置的 TimeWindowEnd 值是 11:00 AM,而路径可到达停靠点的最早时间是 11:25 AM,则记录下 25 分钟的冲突。此外,将对停靠点进行符号化处理以显示这一位置具有时间窗冲突。 默认情况下,如果网络数据集具有时区属性,则此字段中指定的日期和时间将引用与停靠点所在的边或街道相同的时区。如果要将日期和时间解释为 UTC,则可以在 Python 中使用 RouteSolverProperties 类更改路径分析图层的 timeZoneUsageForTimeFields 属性。 可以使用创建路径分析图层地理处理工具中的 time_zone_for_time_fields 参数为时间窗口字段指定时区。 |
Attr_[Cost] (例如,Attr_Minutes,其中 Minutes 是行程成本) | 该字段指定应在停靠点花费的附加时间或发生的行驶距离。 要确定字段单位,请参考字段名称中指定的网络成本属性的单位。例如,如果 DriveTime 成本属性以分钟作为单位,则 Attr_DriveTime 也以分钟为单位。 零或空值表示停靠点不需要服务时间或额外的行驶距离。 您可能想在停靠点添加附加时间以表示在停靠点送货、安装设备或执行某些其他任务所花费的时间。同样,添加额外距离可能有助于解释网络数据集未显示的长车道或其他道路。 如果有多个网络成本属性,您将会看到多个 Attr_[Cost] 字段。因此,可能有多个基于时间或距离的 Attr_[Cost] 字段。仅当字段名称中提到的成本属性用于分析(例如最小化或累积时间或距离)时,才会引用提供的字段值。 |
网络位置字段
| 结合使用这些属性可描述网络中对象所在的点。 |
CurbApproach | CurbApproach 字段指定了车辆到达和离开网络位置的方向。两点之间的最短路径可能会根据到达或离开某个位置时允许的行驶方向而变化。有四种选择(其编码值显示在圆括号中):
|
LocationType | 该字段描述了停靠点类型。
|
注:
时间窗仅表明车辆何时到达停靠点,而不表明 Attr_[Cost] 何时也必须结束。为了考虑服务时间并在时间窗关闭前离开,请从 TimeWindowEnd 字段的值中减去 Attr_[Cost] 的值。停靠点:输入/输出字段
输入/输出字段 | 说明 |
---|---|
Sequence | 作为输入字段,该数字表示访问停靠点的顺序。可以使用路径选项卡上的顺序参数来指定是要让输出路径遵循该字段中指定的顺序,还是要将其覆盖以生成可最大程度地降低按原路返回可能性的最佳顺序。 在路径内(针对有相同 RouteName 字段值的停靠点),序号应该大于 0 且不大于路径内分组停靠点的总数。同样,具有相同 RouteName 字段值的任何停靠点的序号之间不应该重复。 |
Status | 该字段可指示该点的状态。运行分析后,状态可能会发生更改。该字段值受到下面列出值的属性域的约束(括号中是它们的编码值):
运行分析后,可以将状态修改为以下某一状态值:
|
停靠点:输出字段
输出字段 | 说明 |
---|---|
ArriveCurbApproach | 指示在车辆到达停靠点时停靠点位于车辆哪一侧。如果停靠点的 CurbApproach 值设置为“车辆的右侧”,则求解后的 ArriveCurbApproach 是“车辆的右侧”。但是,如果将 CurbApproach 值设置为“车辆的任意一侧”或“禁止 U 形转弯”,则ArriveCurbApproach 可以为车辆的右侧或左侧,具体取决于哪侧生成的总路径最短。 |
DepartCurbApproach | 指示在车辆离开停靠点时停靠点位于车辆哪一侧。如果将网络位置的 CurbApproach 值设置为“车辆的右侧”,则求解后的 DepartCurbApproach 是“车辆的右侧”。但是,如果将 CurbApproach 值设置为“车辆的任意一侧”或“禁止 U 形转弯”,则DepartCurbApproach 可以为车辆的右侧或左侧,具体取决于哪侧生成的总路径最短。 |
Cumul_[Cost] (例如,Cumul_Minutes,其中 Minutes 是网络的成本) | 该字段是到达停靠点所需的总时间、距离或其他行程成本。其中包括行驶到停靠点的过程中产生的行程成本、停靠点的成本以及所有先前停靠点的成本。 如果路径分析图层确定要花费 10 分钟访问两个停靠点,且第二个停靠点的 Attr_Minutes 值为 5,则 Cumul_Minutes 值将为 15 分钟。 |
Wait_[Cost] (例如,Wait_Minutes,其中 Minutes 是行程成本) | 该字段存储的是路径提前到达停靠点时等待时间窗打开 (TimeWindowStart) 所花费的时间。 |
CumulWait_[Cost] (例如,CumulWait_Minutes,其中 Minutes 是行程成本) | 该字段存储等待时间窗打开 (TimeWindowStart) 所花费的时间总和。会测量空闲时间。其中包括路径访问当前停靠点和所有先前停靠点花费的等待时间。 |
Violation_[Cost] | 该字段用于测量在时间窗关闭 (TimeWindowEnd) 之后路径到达的迟到时间。确切地说,它存储时间窗终止时与路径到达停靠点之间的时间间隔。 |
CumulViolation_[Cost] | 该字段存储路径访问当前停靠点和所有先前停靠点时的累积冲突时间(Violation_[阻抗])。 |
ArriveTime | 指示到达停靠点的“日期和时间”值。 使用跨越多个时区的流量数据时,该时刻的时区将采用停靠点所处的网络元素所在时区。 |
DepartTime | 指示离开停靠点的“日期和时间”值。 使用跨越多个时区的流量数据时,该时刻的时区将采用停靠点所处的网络元素所在时区。 |
ArriveTimeUTC | 表示到达时的日期和时间值,以协调世界时间 (UTC) 给出。 |
DepartTimeUTC | 表示出发时的日期和时间值,以协调世界时间 (UTC) 给出。 |
路径要素类
路径要素类存储通过分析生成的路径。其为仅输出类;在运行分析时,路径分析图层会覆盖或删除任何路径要素。下表列出路径要素类的输出字段:
路径:输出字段
输出字段 | 说明 |
---|---|
ObjectID | 系统管理的 ID 字段。 |
Name | 求解路径图层后将自动分配路径名称,方法为从停靠点要素类的 RouteName 字段读取值,或合并路径中第一个停靠点的名称和最后一个停靠点的名称(当该值为空时),例如,停靠点 1 – 停靠点 8。 |
Shape | 指示网络分析对象地理位置的几何字段。 |
FirstStopID | 路径中第一个停靠点的 ObjectID 值。 |
LastStopID | 路径中最后一个停靠点的 ObjectID 值。 |
StopCount | 路径访问过的停靠点数。 |
Total_[Cost] (例如,Total_Minutes,其中 Minutes 是网络的行程成本) | 从第一个停靠点开始到最后一个停靠点结束的总距离、时间或其他行程成本。该值中包含总行驶成本和已访问停靠点的 Attr_[Cost]。 |
TotalWait_[Cost] (例如,TotalWait_Minutes,其中 Minutes 是网络的行程成本) | 该字段存储路径的总等待时间,即在停靠点处等待时间窗打开所花费的时间。 |
TotalViolation_[Cost] (例如,TotalViolation_Minutes,其中 Minutes 是网络的行程成本) | 该字段存储路径中停靠点处的总冲突时间。如果路径在时间窗关闭之后到达停靠点,则将添加冲突时间,即为 ArriveTime 与 TimeWindowEnd 之间的差值。 |
StartTime | 路径开始时间。 |
EndTime | 路径完成时间。 |
StartTimeUTC | 以协调世界时间 (UTC) 格式给出的路径开始时间。 |
EndTimeUTC | 以协调世界时间 (UTC) 格式给出的路径结束时间。 |
路径分析图层属性
以下各小节列出了可为分析图层设置的参数。其位于路径选项卡,且仅当选择了内容窗格中的路径图层或其某一子图层时才可用。
运行
运行 位于分析组中。加载输入要素并设置分析属性后,单击以求解路径分析。
导入停靠点
导入停靠点 位于输入数据组中。单击以从其他数据源(如点要素图层)将要素加载到停靠点要素类。
导入障碍
单击导入点障碍、导入线障碍或导入面障碍,将来自另一个数据源(例如另一个要素图层)的要素加载到一个障碍要素类(点障碍、线障碍或面障碍)。
创建要素
单击创建要素按钮 ,以打开创建要素窗格。从可用模板中进行选择以在当前地图中创建要素。
模式
模式下拉列表允许您选择出行模式,这一模式是对行人、汽车、货车或其他出行模式移动一起建模的一组设置。下拉列表中的选择是否可用取决于网络分析图层正在引用的网络数据源上配置的出行模式。
顺序
路径求解程序始终能找到两个停靠点之间的最短路径。但是,可能会通过 Network Analyst 计算最佳停靠点顺序来缩短整条路径,从而最大程度地降低按原路返回的可能性。优化停靠点顺序也称为 TSP。
顺序可提供以下选项来保留所有或部分停靠点顺序,或不保留停靠点顺序:
使用当前 - 保留停靠点的 Sequence 字段中所指定的相对停靠点顺序。
具有空 Sequence 字段值的所有停靠点都会插入到具有非空值的停靠点之后。
查找最佳 - 不会保留任何停靠点的顺序,这意味着路径可以在任何停靠点位置开始。将重新排序所有停靠点以查找最短路径。
保留第一个和最后一个停靠点 - 路径分别在第一个和最后一个停靠点开始和结束。将重新排序中间停靠点以查找最短路径。
如果输入停靠点混合了空和非空 Sequence 字段值,路径将在具有最低非空值的停靠点处开始,在要素类中具有空值的最后一个停靠点处结束。
保留第一个停靠点 - 路径会在第一个停靠点开始。将对后续停靠点重新排序以查找最短路径。
如果输入停靠点混合了空和非空 Sequence 字段值,路径将在具有最低非空值的停靠点处开始,并继续前往其他停靠点,无论它们是否有空或非空值,都可以进行重新优化排序。
保留最后一个停靠点 - 路径会在最后一个停靠点结束。将对先前停靠点重新排序以查找最短路径。
如果输入停靠点混合了空和非空 Sequence 字段值,路径将在要素类中具有空值的最后一个停靠点处结束。无论先前停靠点有空值还是非空值,都将对它们进行优化重新排序。
日期和时间
当成本单位基于时间时,日期和时间组中的到达/离开日期-时间类型下拉列表可用。在下拉列表中,选择是否给定特定的时间和日期值来表示一条或多条路径离开第一个停靠点的时间。设置特定时间和日期的主要原因是使用动态交通状况或公共交通计划求解分析;但如果要在分析中使用流量或公共交通,则网络数据集或路径服务必须包括流量数据或公共交通。
下拉列表中包括以下选项:
未使用时间 - 无论网络数据源是否包括基于时间的数据,结果均基于静态行驶时间 - 网络边行驶时间在一天中不会变化。时间和日期文本框处于不可用状态。
日期和时间 - 将时间指定为一天中的具体时间和日历日期。可以使用时间和日期文本框输入该信息。
星期 - 指定一天中的时间和一周中的一天。可以使用时间和日期文本框输入该信息。通过在日期文本框中键入以下值之一来设置一周中的日期:
- 星期一
- 星期二
- 星期三
- 星期四
- 星期五
- 星期六
- 星期日
今天 - 指定时间和假设为当前日期的某天。可以使用时间文本框输入一天中的时间,日期文本框设置为今天,因为其不可用,所以不能更改。
现在 - 运行该分析时,时间和日期设置为当前时间和日期。这在使用实时交通数据配置网络数据集时十分有用,路径分配到驱动程序,以在运行分析后立即得到执行。时间和日期文本框不可用,因此无法进行更改。
可从从参考时区下拉列表中选择应在分析中使用的时区。选项如下:
- 各位置的本地时间
- UTC(协调世界时间)
输出几何线性 Shape 类型
此控制允许您选择输出在地图中的显示形式。路径分析将始终使用您指定的设置沿着此网络解决成本最低的路径,但除了在地图上显示沿此网络的真实路径外,您还可以选择在地图上使用简单直线显示停靠点之间的路径或根本不显示任何线。
- 没有线 - 不生成输出线性形状。
- 直线 - 将简化几何输出为直线。
- 沿网络 - 在地图上沿网络生成实际路径。
累积成本属性
出行设置组中的累积成本属性下拉菜单可用于配置累积成本属性。如果网络数据源为服务,输出几何类型不包括线或没有成本属性时,此下拉菜单不可用。属性将根据显示为组表头的单位属性域(例如,时间或距离)进行分组。选中复选框表示在求解过程中,分析图层将累积选中的属性。
如果选择了同一图层类型的多个分析图层,则复选框将显示混合状态,前提是并非所有图层都共享一个属性的相同检查状态。在下图中,对多个图层选择了 WeekendFallbackTravelTime 属性,因此显示复选标记。
如果所有所选图层共享一个属性的已检查状态,则复选框将显示该状态。
方向
- 求解后输出 - 在求解当前网络分析图层后打开并生成方向。
- 显示方向 - 当求解后输出选项被选中时,单击显示方向选项后,方向窗格中将显示解中每个路径的转向指示。
共享为路径图层
共享为组中的路径图层按钮 可以使您将分析结果共享为路径图层。单击此按钮将打开共享为路径图层地理处理工具。成功执行后,分析结果将共享为门户中的路径图层项目。