求解车辆配送的输出

成功执行后,服务将返回指定车辆配送的解决方案。 该解决方案由下述输出参数组成。

out_stops

将提供有关在站点、停靠点及休息点停靠的信息。 该信息包含哪些路径组成了停靠点、到达时间和离开时间以及停靠点顺序。

注:

填充停靠点形状参数设置为 True 时,此参数为要素类。 否则,它将是表。

参数支持以下字段:

字段描述

Name

停靠点的名称。 此字段的值与输入停靠点、站点或休息点中的 Name 字段相同。 可使用 StopType 字段确定 Name 字段值指的是站点、停靠点,还是休息点。

StopType

指示停靠点表示站点、停靠点或休息点。 字段值为整数,可通过以下方式进行解释:

  • 0 - 停靠点为停靠点。
  • 1 - 停靠点为站点。
  • 2 - 停靠点为休息点。

PickupQuantities

从停靠点接收的货物量或人员数量。 如果停靠点接收多个维度,请用空格分隔每个数量。

此字段值的单位不作保存。 根据指定输入路径的 Capacities 字段及输入停靠点的 PickupQuantitiesDeliveryQuantities 字段的方式来解释这些单位。

DeliveryQuantities

停靠点接收的货物量或人员数量。 如果停靠点接收多个维度,请用空格分隔每个数量。

此字段值的单位不作保存。 根据指定输入路径的 Capacities 字段及输入停靠点的 PickupQuantitiesDeliveryQuantities 字段的方式来解释这些单位。

RouteName

分配给停靠点的路径的名称。

Sequence

指定路径访问停靠点的相对顺序。

FromPrevTravelTime

从上一个停靠点到当前停靠点所经历的行程时间。

该值以时间单位参数指定的单位为单位。

FromPrevDistance

沿着路径从上一个停靠点到当前停靠点的距离。

该值以距离单位参数指定的单位为单位。

ArriveCurbApproach

车辆到达停靠点时路边通道位于车辆哪一侧。 值 1 表示在车辆的右侧;值 2 表示在车辆的左侧。

DepartCurbApproach

车辆离开停靠点时路边通道位于车辆哪一侧。 值 1 表示在车辆的右侧;值 2 表示在车辆的左侧。

ArriveTime

路径每天到达停靠点的时间。 此字段的时间值处于停靠点所在的时区内。

DepartTime

路径每天离开停靠点的时间。 此字段的时间值处于停靠点所在的时区内。

ArriveTimeUTC

路径每天到达停靠点的时间。 时间值以协调世界时间 (UTC) 形式给出。

DepartTimeUTC

路径每天离开停靠点的时间。 时间值以协调世界时间 (UTC) 形式给出。

WaitTime

在停靠点的等待时间或短暂停留时间。 例如,如果路径必须在停靠点等待时间窗打开,将会产生一个等待时间。

该值以时间单位参数指定的单位为单位。

ViolationTime

从停靠点的时间窗结束到路径车辆到达所经历的时间间隔。

该值以时间单位参数指定的单位为单位。

ORIG_FID

输入停靠点、站点或休息点的 ObjectID 值。 此字段可用于将属性连接到输入要素。

out_routes

将为车辆配送问题分析提供对驾驶员、车辆和路线路径的访问权限。

填充路线路线简化容差参数将对输出路径的形状造成影响。

参数支持以下字段:

字段描述

Name

路径的名称。 此字段的值从输入路径上的 Name 字段中复制。

ViolatedConstraints

旧版本:

该字段已弃用,并通过替换为四个从 ViolatedConstraint_1ViolatedConstraint_4 的单独字段。

  • ViolatedConstraint_1
  • ViolatedConstraint_2
  • ViolatedConstraint_3
  • ViolatedConstraint_4

这些字段包含约束冲突的汇总,并在求解操作之后进行设置。 每个字段将包含一个冲突。 如果停靠点有多个违规,则将使用下一个 ViolatedConstraint_# 字段。

这些将针对每个字段显示一个冲突的约束。

  • 超出 MaxOrderCount (0) - 预分配的停靠点无法分配给路径,因为分配停靠点会超出路径的 MaxOrderCount 字段值所指定的可分配给路径的最大停靠点数。
  • 超出 Capacities (1) - 预分配的停靠点无法分配给路径,因为分配停靠点会超出路径的 Capacities 字段值指定的总路径容量。
  • 超出 MaxTotalTime (2) - 从起始站点到终止站点的行驶时间加上在两个站点的服务和等待时间以及任何休息时间,这几个时间的总和超出了路径的 MaxTotalTime 字段值指定的路径总时间。
  • 超出 MaxTotalTravelTime (3) - 从起始站点到终止站点的行驶时间超出了路径的 MaxTotalTravelTime 字段值指定的路径总行驶时间。
  • 超出 MaxTotalDistance (4) - 从起始站点到终止站点的行驶距离超出了路径的 MaxTotalDistance 字段值指定的路径总行驶距离。
  • 硬性时间窗 (5) - 在与路径关联的起始站点、终止站点或中断点上存在硬性时间窗冲突。
  • 不匹配的特殊要求 (6) - 在目标路径上未找到停靠点所需的特殊要求。
  • 硬性路径区 (7) - 预分配给路径的停靠点未落在硬性路径区内。
  • 超出停靠点对 MaxTransitTime (8) - 存在预分配给路径的停靠点对,而分配该停靠点对中的停靠点会超出停靠点对的 MaxTransitTime 字段值所指定的停靠点对的最长行驶时间。
  • 停靠点对冲突 (9) - 停靠点属于某个停靠点对,但无法分配给预分配的路径。
  • 不能到达 (10) - 预分配的停靠点位于路径无法到达的网络元素上。
  • 无法插入所需的休息点 (11) - 在存在预分配的停靠点时,路径的休息点的 sequence 值为空,且在未引入其他冲突的情况下,该休息点不能插入到任何位置。
  • 无法插入所需更新 (12) - 路径超出其容量并且需要访问货物补给点;然而,在存在预分配的停靠点时,关联的货物补给点的 sequence 值为空,且在未引入其他冲突的情况下,关联的货物补给点不能插入到任何位置。
  • 超出休息点 MaxTravelTimeBetweenBreaks (13) - 求解程序不能在休息点的 MaxTravelTimeBetweenBreaks 字段所指定的时间内插入休息点。 这通常是因为预先为休息点分配了一个顺序,而使得无法在最长行驶时间内到达休息点。

  • 超出休息点 MaxCumulWorkTime (14) - 求解程序不能在休息点的 MaxCumulWorkTime 字段所指定的时间内插入休息点。 这通常是因为预先为休息点分配了一个顺序,而使得无法在最长工作时间内到达休息点。
  • InboundArriveTimeOutboundDepartTime 停靠点冲突 (15) - 无法在入站到达时间或出站离开时间约束内为该停靠点提供服务。 当所有路径的 LatestStartTime 字段值早于 InboundArriveTime 值,或所有路径都无法在停靠点的 OutboundDepartTime 值之前到达站点时,便会发生这种冲突。
  • 无法固定第一个/最后一个停靠点 (16) - 停靠点具有固定第一个或固定最后一个分配规则,但求解程序无法遵循此约束。 当固定第一个停靠点数或固定最后一个停靠点数超过可用路径数时便会发生这种冲突。

OrderCount

分配给路径的停靠点数。

TotalCost

路径的总体运营成本,是以下字段值的总和:FixedCostRegularTimeCostOvertimeCostDistanceCost

RegularTimeCost

除任何不需支付酬金的休息时间外的规定工作时间的成本。

OvertimeCost

除任何不需支付酬金的休息时间外的加班时间的成本。

DistanceCost

通过将 TotalDistanceCostPerUnitDistance 字段值相乘得出的距离成本部分。

TotalTime

路径总持续时间。 该持续时间包括行驶时间以及在停靠点、站点和休息点的服务和等待时间。 TotalTime 值等于以下属性字段的总和:

  • StartDepotServiceTime
  • EndDepotServiceTime
  • TotalOrderServiceTime
  • TotalBreakServiceTime
  • TotalRenewalServiceTime
  • TotalWaitTime
  • TotalTravelTime

该值以时间单位参数指定的单位为单位。

TotalOrderServiceTime

在路径上的所有停靠点处所用的总服务时间。

该值以时间单位参数指定的单位为单位。

TotalBreakServiceTime

在路径上的所有休息点处所用的总服务时间。

该值以时间单位参数指定的单位为单位。

TotalTravelTime

路径的总行驶时间。

该值以时间单位参数指定的单位为单位。

TotalDistance

路径的总行驶距离。

该值以距离单位参数指定的单位为单位。

StartTime

路径的开始时间。 路径可能会在起始站点的时间窗打开之前开始,在这种情况下,起始站点处存在一个等待时间。 此属性的时间值处于起始站点所在的时区内。

EndTime

路径的结束时间。 路径在终止站点处完成服务后结束。 此属性的时间值处于终止站点所在的时区内。

StartTimeUTC

以协调世界时间 (UTC) 格式给出的路径开始时间。

EndTimeUTC

以协调世界时间 (UTC) 格式给出的路径结束时间。

TotalWaitTime

在路径上的所有停靠点、站点和中断处的总等待时间。

该值以时间单位参数指定的单位为单位。

TotalViolationTime

在路径上的所有停靠点和中断处的总冲突时间。

该值以时间单位参数指定的单位为单位。

RenewalCount

对于具有货物补给点的路径,该字段相当于车辆为了进行货物补给(即车辆装卸)而在站点停靠的次数。

TotalRenewalServiceTime

对于具有货物补给点的路径,该字段表示在路径上所有货物补给点所用的总服务时间。

该值以时间单位参数指定的单位为单位。

out_directions

将提供对每个生成路径转弯方向的访问权限。

方向语言方向距离单位方向样式名称参数会影响行进方向。 如果填充方向参数设置为 False,则该参数返回空要素。

下表列出了输出方向返回的字段:

字段描述

RouteName

驾驶操作所应用到的路径的名称。 该值与输出路径的 Name 字段值相同。

ArriveTime

开始给定驾驶操作的当日时间。 如果路径跨越多天,则会显示日期和时间。

Type

路线要素代表的行进策略类型或路线文本类型。 要确定 Type 指的是行进策略类型还是路线字符串类型,可查看 SubItemType 字段值。

Type 例如,在应用程序中显示行驶路线时,此字段可根据行进策略类型为路线文本分配图标,或根据路线字符串类型使用格式化样式。

Type 值是下方“行进策略类型”或“路线字符串类型”列表中的整数。

行进策略类型

  • 0:未知
  • 1:抵达停靠点
  • 2:直行
  • 3:左转弯
  • 4:右转弯
  • 5:左转
  • 6:右转
  • 7:向左急转弯
  • 8:向右急转弯
  • 9:调头
  • 10:乘坐渡轮
  • 11:进入环岛
  • 12:驶入高速公路
  • 13:驶离高速公路
  • 14:驶入另一条高速公路
  • 15:在岔路口沿中间道路行驶
  • 16:在岔路口靠左侧行驶
  • 17:在岔路口靠右侧行驶
  • 18:离开停靠点
  • 19:出行方案项目
  • 20:离开渡轮
  • 21:右侧匝道
  • 22:左侧匝道
  • 23:左转,然后立即右转
  • 24:右转,然后立即左转
  • 25:右转,然后立即右转
  • 26:左转,然后立即左转
  • 27:人行坡道
  • 28:电梯
  • 29:自动扶梯
  • 30:楼梯
  • 31:门廊

方向字符串类型

  • 0:常规路线字符串类型
  • 1:离开路线字符串类型
  • 2:到达路线字符串类型
  • 3:长度路线字符串类型
  • 4:时间路线字符串类型
  • 5:时间汇总路线字符串类型
  • 6:时间窗口路线字符串类型
  • 7:冲突时间路线字符串类型
  • 8:等待时间路线字符串类型
  • 9:服务时间路线字符串类型
  • 10:预计到达时间路线字符串类型
  • 11:累积长度路线字符串类型
  • 12:街道名称路线字符串类型
  • 13:备用街道名称路线字符串类型
  • 14:符号分支信息路线字符串类型
  • 15:符号朝向信息路线字符串类型
  • 16:十字路街道名称路线字符串类型
  • 17:符号出口编号路线字符串类型

SubItemType

指定 Type 字段指的是方向字符串类型表格中的整数,还是行进策略类型表格中的整数。

  • 如果 SubItemType 值为 1,则 Type 字段指行进策略类型表中的值。
  • 如果 SubItemType 值为 2,则 Type 字段指路线字符串类型表中的值。
  • 如果 SubItemType 值为 3,则 Type 字段指路线字符串类型表中的值。

Text

行驶路线的文本描述。

ElaspsedTime

当前行驶方向开始到下一行驶方向开始之时,或到上一行驶方向的路径结束之时所经历的时间,以分钟为单位。

DriveDistance

当前行驶方向开始到下一行驶方向开始,或到上一行驶方向的路径结束之时所行驶的距离。

该值的单位由 Directions_Distance_Units 参数指定。

如果行驶路线与下一个行驶路线开始的位置相同,则此值为零。 例如,对于路径开始时的路线文本,DriveDistance 值为 0。

out_unassigned_stops

为任何路径都无法访问的停靠点提供了访问权限。 您还可以确定这些停靠点无法访问的原因,以便进行必要的更改来解决这一问题。

注:

填充停靠点形状参数设置为 True 时,此参数为要素类。 否则,它将是表。

参数支持以下字段:

字段描述

StopType

指示停靠点表示站点、停靠点或休息点。 字段值为整数,可通过以下方式进行解释:

  • 0 - 停靠点为停靠点。
  • 1 - 停靠点为站点。
  • 2 - 停靠点为休息点。

Name

停靠点的名称。 此字段的值与输入停靠点、站点或休息点中的 Name 字段相同。 可使用 StopType 字段确定 Name 字段值指的是站点、停靠点,还是休息点。

ViolatedConstraints

旧版本:

该字段已弃用,并通过替换为四个从 ViolatedConstraint_1ViolatedConstraint_4 的单独字段。

  • ViolatedConstraint_1
  • ViolatedConstraint_2
  • ViolatedConstraint_3
  • ViolatedConstraint_4

这些字段包含约束冲突的汇总,并在求解操作之后进行设置。 每个字段将包含一个冲突。 如果停靠点有多个违规,则将使用下一个 ViolatedConstraint_# 字段。

这些将针对每个字段显示一个冲突的约束。

  • 超出 MaxOrderCount (0) - 预分配的停靠点无法分配给路径,因为分配停靠点会超出路径的 MaxOrderCount 字段值所指定的可分配给路径的最大停靠点数。
  • 超出 Capacities (1) - 预分配的停靠点无法分配给路径,因为分配停靠点会超出路径的 Capacities 字段值指定的总路径容量。
  • 超出 MaxTotalTime (2) - 从起始站点到终止站点的行驶时间加上在两个站点的服务和等待时间以及任何休息时间,这几个时间的总和超出了路径的 MaxTotalTime 字段值指定的路径总时间。
  • 超出 MaxTotalTravelTime (3) - 从起始站点到终止站点的行驶时间超出了路径的 MaxTotalTravelTime 字段值指定的路径总行驶时间。
  • 超出 MaxTotalDistance (4) - 从起始站点到终止站点的行驶距离超出了路径的 MaxTotalDistance 字段值指定的路径总行驶距离。
  • 硬性时间窗 (5) - 在与路径关联的起始站点、终止站点或中断点上存在硬性时间窗冲突。
  • 不匹配的特殊要求 (6) - 在目标路径上未找到停靠点所需的特殊要求。
  • 硬性路径区 (7) - 预分配给路径的停靠点未落在硬性路径区内。
  • 超出停靠点对 MaxTransitTime (8) - 存在预分配给路径的停靠点对,而分配该停靠点对中的停靠点会超出停靠点对的 MaxTransitTime 字段值所指定的停靠点对的最长行驶时间。
  • 停靠点对冲突 (9) - 停靠点属于某个停靠点对,但无法分配给预分配的路径。
  • 不能到达 (10) - 预分配的停靠点位于路径无法到达的网络元素上。
  • 无法插入所需的休息点 (11) - 在存在预分配的停靠点时,路径的休息点的 sequence 值为空,且在未引入其他冲突的情况下,该休息点不能插入到任何位置。
  • 无法插入所需更新 (12) - 路径超出其容量并且需要访问货物补给点;然而,在存在预分配的停靠点时,关联的货物补给点的 sequence 值为空,且在未引入其他冲突的情况下,关联的货物补给点不能插入到任何位置。
  • 超出休息点 MaxTravelTimeBetweenBreaks (13) - 求解程序不能在休息点的 MaxTravelTimeBetweenBreaks 字段所指定的时间内插入休息点。 这通常是因为预先为休息点分配了一个顺序,而使得无法在最长行驶时间内到达休息点。

  • 超出休息点 MaxCumulWorkTime (14) - 求解程序不能在休息点的 MaxCumulWorkTime 字段所指定的时间内插入休息点。 这通常是因为预先为休息点分配了一个顺序,而使得无法在最长工作时间内到达休息点。
  • InboundArriveTimeOutboundDepartTime 停靠点冲突 (15) - 无法在入站到达时间或出站离开时间约束内为该停靠点提供服务。 当所有路径的 LatestStartTime 字段值早于 InboundArriveTime 值,或所有路径都无法在停靠点的 OutboundDepartTime 值之前到达站点时,便会发生这种冲突。
  • 无法固定第一个/最后一个停靠点 (16) - 停靠点具有固定第一个或固定最后一个分配规则,但求解程序无法遵循此约束。 当固定第一个停靠点数或固定最后一个停靠点数超过可用路径数时便会发生这种冲突。

Status

指示该点相对于其在网络上的位置以及分析结果的状态。 可能的值如下:

  • 0(确定)- 该点已在网络上定位。
  • 1(未定位)- 该点未在网络上定位,因此未包含在分析中。
  • 2(网络元素未定位)- 未找到由该点的网络位置字段标识的网络元素。 如果删除了该点应处于的网络元素并且未对网络位置重新进行计算,则可能会出现这种情况。
  • 3(元素不可遍历)- 在其上定位该点的网络元素不可遍历。 元素受到约束属性限制时可能会发生这种情况。
  • 4(字段值无效)- 字段值位于范围或编码值域外。 例如,应该填写正数的位置存在负数。
  • 5(无法到达)- 求解程序无法到达该点。 该点可能位于独立于其他输入的网络断开连接区域中,或是障碍或限制阻止了往返于该点。
  • 6(时间窗冲突)- 在指定的时间窗内无法到达该点。 此状态仅适用于支持时间窗的网络分析类型。
  • 7(未定位在最近位置) - 由于限制或障碍致使无法遍历距该点最近的网络位置,因而该点将被置于最近的可遍历网络要素上。

solve_succeeded

使用此参数可确定分析是否成功。

output_result_file

使用此参数可以将分析结果作为 .zip 文件(包含每个输出的一个或多个文件)进行访问。 单个文件的格式由输出格式参数指定。 当输出格式参数设置为要素集时,未填充参数值。

如果指定文件基于输出格式(如 JSON 文件GeoJSON 文件),则不会向显示添加输出,因为应用程序(例如 ArcMapArcGIS Pro)不会绘制结果文件的内容。 相反,结果文件将下载到计算机上的临时目录中。 在 ArcGIS Pro 中,可以通过查看输出结果文件参数值来确定已下载文件的位置,该参数位于与工程地理处理历史中的工具执行相对应的条目中。 在 ArcMap 中,可以通过访问输出结果文件参数的快捷菜单中的复制位置选项来确定文件的位置,该参数位于与地理处理结果窗口中的工具执行对应的条目中。

output_route_data

使用此参数可访问含有某文件地理数据库的 .zip 文件,该文件地理数据库包含相应格式的分析的输入和输出,可以使用该格式与 ArcGIS OnlinePortal for ArcGIS 共享路径图层。 仅当保存路径数据参数设置为 True 时才填充参数值。

文件将下载到计算机上的临时目录中。 在 ArcGIS Pro 中,可以通过查看输出路径数据参数值来确定已下载文件的位置,该参数位于与工程地理处理历史中的工具执行相对应的条目中。 在 ArcMap 中,可以通过访问输出路径数据参数的快捷菜单中的复制位置选项来确定文件的位置,该参数位于与地理处理结果窗口中的工具执行对应的条目中。

output_network_analysis_layer

使用此参数可访问存储分析设置以及用于分析输入和输出的网络分析图层文件。 仅当保存输出网络分析图层参数设置为 True 时才填充参数值。

文件将下载到计算机上的临时目录中。 在 ArcGIS Pro 中,可以通过查看输出网络分析图层参数值来确定已下载文件的位置,该参数位于与工程地理处理历史中的工具执行相对应的条目中。 在 ArcMap 中,可以通过访问输出网络分析图层参数的快捷菜单中的复制位置选项来确定文件的位置,该参数位于与地理处理结果窗口中的工具执行对应的条目中。

注:

由于数据源无效,因此即使在 ArcGIS Desktop 应用程序(例如 ArcMap)中打开文件,也无法直接使用此文件。 需要将该文件发送至 Esri 技术支持以诊断工具所返回结果的质量。