“最后一公里配送”求解程序是一个针对特定用例的车辆配送 (VRP) 算法,专为负责将包裹配送至最终用户的车队设计。 例如,它可用于需要向最终客户位置配送货物的单个配送中心,这些位置可以密集地分布,例如向位于大部分街道上的多个客户配送,但不访问每条街道上的每栋房屋。
配送公司可确定每条路径(配送车辆和驾驶员)要服务的停靠点(包裹配送位置)以及停靠点的到访顺序。 其目标在于通过生成在地理上聚集的路径,使驾驶员轻松地将包裹送达至每个客户,更好地服务停靠点,同时,最大限度地减少总体运营成本。
Network Analyst 的“路径”求解程序可找到单个车辆访问多个停靠点的最佳路径。 “最后一公里配送”求解程序和“车辆配送”求解程序可找到一个车队服务多个停靠点的最佳路径。 “车辆配送”求解程序具有很大的灵活性,可以模拟许多不同的约束,但是其算法也受到这种灵活性的限制。 “最后一公里配送”求解程序支持一部分约束,但是对于它支持的那些约束,该求解程序的算法可提供更好的质量和性能。
注:
“最后一公里配送”求解器的最低要求为一个停靠点和一条路线。 每个停靠点和路线需要一个唯一名称。 需要每条路线的最早开始时间、最早开始日期和最大总时间,可使用路线要素类上的 EarliestStartTime、EarliestStartDate 和 MaxTotalTime 属性进行指定。 也可以在最后一公里配送图层选项卡上将这三个值指定为默认时间、默认日期和最大总时间图层属性。Orders
Orders 要素类用于存储停靠点,这些停靠点是最后一公里配送分析图层的一部分。 这些停靠点指路径配送包裹的最终客户位置或收取包裹以进行运送的初始客户位置。
如果停靠点具有需要接收或配送的物品,这些物品通常可能会包含一种或多种容量属性,该属性可以基于任意形式的测量值或测量值的组合,如,重量、体积或单位数量。 而某些停靠点(如,监督访问)则可能不具有任何关联的配送或接收行为。
停靠点可具备服务时间,即在该停靠点完成工作所需的时间。 例如,配送货车可能需要 20 分钟的服务时间才能卸载一件家具并将它搬运到屋内。 各停靠点的服务时间可以相同,也可以不同。
停靠点还可与特殊需求相关联。 也就是说,某停靠点可能需要一位具有某类特定技能的技术人员(例如,电气工程师)或者一辆具有特殊功能(例如,动力升降装置)的货车。 只有具有这种特性的路径才会分配给停靠点。
停靠点:输入字段
下表中介绍了 Orders 要素类的输入字段:
输入字段 | 描述 | 数据类型 |
---|---|---|
ObjectID | 系统管理的 ID 字段。 该字段不能为空值。 | 对象 ID |
Shape | 指示网络分析对象地理位置的几何字段。 | 几何 |
Name |
网络分析对象的名称。 名称必须唯一。 停靠点名称区分大小写。即使停靠点不参与求解运算,停靠点名称也不能为空。 该字段在这里是一个主键,同时作为外键来引用“停靠点特殊要求”表中的停靠点。 | 文本 |
ServiceTime |
路径访问网络位置时要在该位置所花费的时间;即网络位置的阻抗值。 零值或空值表示网络位置不需要任何服务时间。 该字段值的单位由分析图层的时间字段单位属性指定。 | 双精度 |
TimeWindowStart |
网络位置的时间窗开始时间。 该字段可以包含空值;空值表示没有开始时间。 时间窗仅说明车辆何时可以到达停靠点,并不说明服务时间必须何时结束。 为了考虑服务时间并在时间窗口终止前离开,请从 ServiceTime 值中减去 TimeWindowEnd 值。 | 日期 |
TimeWindowEnd |
网络位置的时间窗结束时间。 该字段可以包含空值;空值表示没有结束时间。 | 日期 |
MaxViolationTime |
如果到达时间出现在时间窗结束后,则认为与时间窗发生了冲突。 该字段为停靠点的时间窗指定允许的最长冲突时间。 它可包含零值,但不能包含负值。 零值表示不能接受时间窗冲突,即时间窗为硬性要求。 相反,空值表示对允许的冲突时间没有限制。 非零值指定最长延迟时间;例如,路径可在时间窗结束之后最多 30 分钟内到达停靠点。 该字段值的单位由分析图层的时间字段单位属性指定。 | 双精度 |
InboundArriveTime | 要配送到停靠点的物品在起始站点准备就绪的时间。 仅当入站到达时间早于路径的开始时间时,才能将该停靠点分配给此路径;这样,在物品已准备就绪,可以进行装载之前,路径无法离开站点。 此字段有助于对涉及入站中转的情景进行建模。 例如,一个由入境航班配送的包裹预计在上午 9:30 前到达并分拣。要确保不将此停靠点分配给在货物到达之前离开的路径,则停靠点的入站到达时间应设置为上午 9:30。 注:
| 日期 |
OutboundDepartTime | 要在停靠点接收的物品必须到达终止站点的时间。 仅当路径能够访问停靠点且到达终止站点的时间早于指定的出站离开时间时,才能将该停靠点分配给路径。 此字段有助于对涉及出站中转的情景进行建模。 例如,货运公司派出运货车去接收停靠点的包裹,并将其运送至一个站点,包裹将从该站点转运至其他设施点,最终抵达目的地。 每天下午 3:00 会有一辆半挂车停靠在该站点,接收高优先级包裹并将其直接送往中转站。 为了避免将这些高优先级包裹的配送延迟至第二天下午 3:00 的行程,货运公司计划让运货车在截止时间下午 3:00 之前接收停靠点的高优先级包裹并将其运送至中转站。 这完全可以通过将出站离开时间设置为下午 3:00 来实现。 注:
| 日期 |
| 配送量。 可以使用各种规格(如重量、体积或数量)来指定配送量。 如果有多个配送量,则根据需要使用 DeliveryQuantity_1 到 DeliveryQuantity_9 字段进行指定。 如果使用了 DeliveryQuanity_# 字段,则无法使用 PickupQuantity_# 字段。 求解程序支持选择所有配送停靠点或所有接收停靠点,但不能同时选择两者。 | 双精度 |
| 接收的大小。 可以使用各种规格(如重量、体积或数量)来指定配送量。 如果存在多个接收量,则根据需要使用 PickupQuantity_1 到 PickupQuantity_9 字段进行指定。 如果使用了 DeliveryQuanity_# 字段,则无法使用 PickupQuantity_# 字段。 求解程序支持选择所有配送停靠点或所有接收停靠点,但不能同时选择两者。 | 双精度 |
AnchorRule | 指定停靠点的固定规则,表示该停靠点是否必须是路径上的第一个或最后一个停靠点。 如果这是对特定路径的附加约束,则可以通过 AssignmentRule 字段进行控制。 该字段由以下值的约束(括号中显示它们的编码值):
| 长整型 |
AssignmentRule | 指定停靠点路径分配选项的规则。 它由以下值的约束(括号中显示它们的编码值):
| 长整型 |
网络位置字段
|
这些字段共同描述网络中对象所在的点。 |
|
CurbApproach | 指定车辆到达和离开网络位置的方向。 值选项如下所示(其编码值显示在括号中):
| 长整型 |
停靠点:输入/输出字段
下表中介绍了 Orders 要素类的输入/输出字段:
输入/输出字段 | 描述 | 数据类型 |
---|---|---|
RouteName |
向其分配停靠点的路径的名称。 该输入字段用于将停靠点预先分配给特定的路径。 它可包含空值,空值表示停靠点未预先分配给任何路径,而求解程序会为停靠点确定可能的最佳路径分配。 如果将该字段设为空,则顺序字段也必须为空。 RouteName 字段是 Routes 类中 Name 字段的外键。 完成求解操作后,如果已为停靠点分配路径,则 RouteName 字段将包含向其分配停靠点的路径的名称。 | 文本 |
Sequence | 停靠点在其分配的路径上的顺序。 该输入字段用于指定停靠点在路径上的相对顺序。 该字段可包含空值,空值表示停靠点可位于路径上的任意位置。 输入顺序值不能为负,且对于各个路径必须唯一(在站点访问和停靠点之间共享),但不需要从 0 开始,也不需要连续。 执行求解操作后,Sequence 字段中会包含停靠点在其分配的路径上的顺序值。 路径的输出顺序值在站点访问和停靠点之间共享。 该顺序从 0 开始(在起始站点处),并且是连续的。 已分配路径的停靠点可能的最小输出顺序值为 1,因为路径始终从站点处开始,即使该站点是虚拟站点也是如此。 | 长整型 |
Status |
指定该点关于其在网络上的位置以及分析结果的状态。 可能的值如下:
如果使用了时间窗,并且路径提前或延后到达,则值将更改为时间窗冲突 (6) | 长整型 |
停靠点:输出字段
下表中介绍了 Orders 要素类的输出字段:
输出字段 | 描述 | 数据类型 |
---|---|---|
| 这些字段包含约束冲突的汇总,并在求解操作之后进行设置。 每个字段将包含一个冲突。 如果停靠点有多个违规,则将使用下一个 ViolatedConstraint_# 字段。
| 长整型 |
FromPrevTravelTime | 从上一个停靠点到当前停靠点的行程时间。 该字段值的单位由分析图层的时间字段单位属性指定。 | 双精度 |
FromPrevDistance | 从上一个停靠点到当前停靠点的行程距离。 该字段值的单位由分析图层的“距离字段单位”属性指定。 | 双精度 |
ArriveCurbApproach | 在车辆到达网络位置时停靠点位于车辆哪一侧。 如果将网络位置的 CurbApproach 值设置为“车辆的右侧”,则求解后的 ArriveCurbApproach 值是“车辆的右侧”。 但是,如果将 CurbApproach 值设置为“车辆的任意一侧”或“禁止 U 形转弯”,则 ArriveCurbApproach 值可能是左侧或右侧,具体取决于使用哪个值的总路径最短。 | 长整型 |
DepartCurbApproach | 在车辆离开网络位置时停靠点位于车辆哪一侧。 如果将网络位置的 CurbApproach 值设置为“车辆的右侧”,则求解后的 DepartCurbApproach 值是“车辆的右侧”。 但是,如果将 CurbApproach 值设置为“车辆的任意一侧”或“禁止 U 形转弯”,则 DepartCurbApproach 值可能是左侧或右侧,具体取决于使用哪个值的总路径最短。 | 长整型 |
ArriveTime | 指示到达停靠点时的日期和时间值。 路径到达停靠点的时间可能在停靠点的某个时间窗开始之前,在这种情况下,停靠点处存在一个等待时间。 如果停靠点采用软性时间窗,则路径到达该停靠点的时间还可能在时间窗结束之后,在这种情况下,停靠点处存在一个冲突时间。 此到达时间反映求解程序在优化过程中使用的行程时间。 如果网络包含交通流量数据,求解程序将使用一天内的平均行驶时间。 使用跨越多个时区的流量数据时,该时刻的时区将采用停靠点所处网络元素所在的时区。 | 日期 |
DepartTime | 指示停靠点离开时间的日期和时间值。 路径在完成服务后离开停靠点。 此离开时间反映求解程序在优化过程中使用的行程时间。 如果网络包含交通流量数据,求解程序将使用一天内的平均行驶时间。 使用跨越多个时区的流量数据时,该时刻的时区将采用停靠点所处网络元素所在的时区。 | 日期 |
WaitTime | 在停靠点的等待时间或短暂停留时间。 例如,如果路径必须在停靠点等待时间窗打开,那么会使用一个等待时间值。 该字段值的单位由分析图层的时间字段单位属性指定。 | 双精度 |
ViolationTime | 停靠点的时间窗结束与路径车辆到达之间的时间间隔。 该字段值的单位由分析图层的时间字段单位属性指定。 | 双精度 |
Depots
Depots 要素类用于存储站点,这些站点是最后一公里配送分析图层的一部分。 站点是指车辆在工作时间开始时离开并在工作时间结束后返回的位置。 站点是车辆装货(对于配送)或卸货(对于接收)的位置。 对于“最后一公里配送”求解程序,所有路径必须从同一个站点位置开始,并且必须在同一个站点位置结束。 但是,起始和终止站点位置可以不同,或者可以使用问题中未明确指定的虚拟站点位置来模拟站点位置。
站点:输入字段
下表中介绍了 Depots 要素类的输入字段:
输入字段 | 描述 | 数据类型 |
---|---|---|
ObjectID | 系统管理的 ID 字段。 | 对象 ID |
Shape | 指示网络分析对象地理位置的几何字段。 | 几何 |
Name |
网络分析对象的名称。 该字段是主键,也用作 Routes 要素图层和 Depot Visits 要素图层中的外键以引用站点。 站点名称区分大小写,不得为空且必须唯一。 | 文本 |
网络位置字段
|
这些字段共同描述网络中对象所在的点。 |
|
CurbApproach |
指定车辆到达和离开网络位置的方向。 值选项如下所示(其编码值显示在括号中):
| 长整型 |
站点:输入/输出字段
下表中介绍了 Depots 要素类的输入/输出字段:
输入/输出字段 | 描述 | 数据类型 |
---|---|---|
Status |
指定该点关于其在网络上的位置以及分析结果的状态。 可能的值如下:
如果使用了时间窗,并且提前或延后到达,则值将更改为时间窗冲突 (6)。 | 长整型 |
Routes
Routes 要素类用于存储描述车辆和驾驶员特征的路径。 路径可以具有开始和结束站点服务时间、固定或灵活的起始时间、基于时间的运行成本、基于距离的运行成本、多个容量、对驾驶员工作时间的各种约束等等。
路径:输入字段
下表中介绍了 Routes 要素类的输入字段:
输入字段 | 描述 | 数据类型 |
---|---|---|
ObjectID | 系统管理的 ID 字段。 | 对象 ID |
Name |
网络分析对象的名称。 该字段是主键,也在 Orders、Depot Visits 要素图层和 RouteSpecialties 表中作为外键。 路径名称区分大小写,而且即使路径不属于求解操作的一部分,路径名称也不能为空。 名称必须唯一。 | 文本 |
StartDepotName | 路径的起始站点名称。 所有路径必须具有相同的起始站点。 它们可以全部是 Depots 类中指定的同一个位置,也可以全部留空。 起始站点和终止站点可以不同。 该字段是 Depots 类中 Name 字段的外键。 站点对象必须事先存在,才会显示在 StartDepotName 下拉列表中。 如果 StartDepotName 值为空,则路径会将分配的第一个停靠点作为起始点。 如果车辆的起始位置未知或者与您的路径问题不相关,则可以忽略起始站点。 如果停靠点或站点跨多个时区,则不允许使用虚拟起始站点。 如果路径正在进行配送并且 StartDepotName 为空,则假设在路径开始前,在一个虚拟站点处进行装货。 | 文本 |
EndDepotName | 路径的终止站点名称。 所有路径必须具有相同的终止站点。 它们可以全部是 Depots 类中指定的同一个位置,也可以全部留空。 起始站点和终止站点可以不同。 该字段是 Depots 类中 Name 字段的外键。 站点对象必须事先存在,才会显示在 EndDepotName 下拉列表中。 | 文本 |
StartDepotServiceTime |
在起始站点的服务时间。 该字段可用于为车辆装货所用的时间建立模型。 该字段可以包含空值;空值表示没有服务时间。 该字段值的单位由分析图层的时间字段单位属性指定。 注:起始和结束站点处的服务时间是固定值(由 StartDepotServiceTime 和 EndDepotServiceTime 字段值指定),因此不必考虑路径的实际载荷。 例如,在起始站点处装载车辆所花费的时间取决于订单大小。 因此,可为站点服务时间分配与货车满载或货车平均装载对应的值,也可以设置自行估计的时间值。 | 双精度 |
EndDepotServiceTime |
在终止站点的服务时间。 该字段可用于为车辆卸货所用的时间建立模型。 该字段可以包含空值;空值表示没有服务时间。 该字段值的单位由分析图层的时间字段单位属性指定。 注:起始和结束站点处的服务时间是固定值(由 StartDepotServiceTime 和 EndDepotServiceTime 字段值指定),因此不必考虑路径的实际载荷。 例如,在起始站点处装载车辆所花费的时间取决于订单大小。 因此,可为站点服务时间分配与货车满载或货车平均装载对应的值,也可以设置自行估计的时间值。 | 双精度 |
EarliestStartDate | 路径允许的最早开始日期。 求解程序将此字段与 EarliestStartTime 值结合使用,以指示路径应开始的最早日期和时间。 此字段和 RouteStartDate 图层属性之间必须填充一个。 如果此字段留空,则会为路径使用 RouteStartDate 值。 将网络数据集与跨越多个时区的交通流量数据结合使用时,EarliestStartTime 的时区与起始站点所在的边或交汇点的时区相同。 | 仅日期 |
EarliestStartTime |
路径允许的最早开始时间。 求解程序将此字段与 EarliestStartDate 值结合使用,以指示路径应开始的最早日期和时间。 此字段和 RouteStartTime 图层属性之间必须填充一个。 如果此字段留空,则会为路径使用 RouteStartTime 值。 将网络数据集与跨越多个时区的交通流量数据结合使用时,EarliestStartTime 的时区与起始站点所在的边或交汇点的时区相同。 | 仅时间 |
StartFlexibility | 允许路径开始的最早开始时间之后的时间量。 此值可以是空值、零值(表示开始时间没有灵活性)或正数。 该字段值的单位由分析对象的时间字段单位属性指定。 | 双精度 |
ArriveDepartDelay |
将车辆加速到正常行驶速度、减速到停止状态以及离开和进入网络(例如,出入停车场)所需的行驶时间。 该字段值的单位由分析图层的时间字段单位属性指定。 通过包含 ArriveDepartDelay 值,可防止求解程序分派多条路径来为完全重合的停靠点提供服务。 该字段的成本是因为对不重合的停靠点和站点进行访问而产生的。 例如,如果路径从站点处开始,然后访问第一个停靠点,则总的到达/离开延迟会计入行驶时间。 这同样适用于从第一个停靠点行驶到第二个停靠点的情况。 如果第二个停靠点与第三个停靠点重合,则不会在它们之间添加 ArriveDepartDelay 值,因为车辆并不需要移动。 例如,在一幢高层建筑物中有五个重合停靠点,而且可通过三条不同的路径来为它们提供服务。 这意味着将产生三个到达/离开延迟;也就是说,三名驾驶员需要寻找停车位并进入同一栋建筑物。 不过,如果可以通过一条路径来为这些停靠点提供服务,则只有一名驾驶员会需要寻找停车位并进入该建筑物,这样只会产生一个到达/离开延迟。 由于求解程序会尝试将成本降至最低,所以它将尝试限制到达/离开延迟并使用单一路径选项。 (特殊要求、时间窗或容量等其他约束可能要求发送多条路径。) | 双精度 |
| 车辆的最大装载量(例如体积、重量或数量)。 如果存在多个装载量,则根据需要使用 Capacity_1 到 Capacity_9 字段进行指定。 注:空字符串或空值等同于无穷大。 容量值不能为负。 | 双精度 |
FixedCost | 仅当解决方案中使用路径(即,路径分配有停靠点)时才产生的固定货币成本。 该字段可以包含空值;空值表示没有固定成本。 该成本是路径总运行成本的一部分。 | 双精度 |
CostPerUnitTime |
路径总持续时间(包括行驶时间以及在停靠点和站点的服务时间和等待时间)中每单位工作时间产生的货币成本。 该字段不能包含空值,其默认值为 1。 该字段值的单位由分析图层的时间字段单位属性指定。 | 双精度 |
CostPerUnitDistance |
路径长度(总行驶距离)中每单位行驶距离产生的货币成本。 该字段可以包含空值;空值表示成本为零。 距离单位由分析图层的距离字段单位属性指定。 | 双精度 |
OvertimeStartTime | 开始计算加班时间之前的规定工作时间。 该字段可以包含空值;空值表示没有加班时间。 如果包含 OvertimeStartTime 值,则该值应大于零且小于 MaxTotalTime 值。 该字段值的单位由分析图层的时间字段单位属性指定。 | 双精度 |
CostPerUnitOvertime |
每单位加班工作时间产生的货币成本。 如果 OvertimeStartTime 为空,则该字段只能包含空值。否则,它必须是大于 CostPerUnitTime 值的正值。 | 双精度 |
MaxOrderCount |
路径上允许的最大停靠点数。 该字段可以包含空值;空值表示对路径在一天内可以访问的停靠点数没有约束。 | 长整型 |
MaxTotalTime | 允许的最长路径持续时间。 路径持续时间包括行驶时间以及在停靠点和站点的服务和等待时间。 必须设置该字段和分析对象的 maxRouteTotalTime 属性之间的一个。 如果该字段留空,则会为路径使用 maxRouteTotalTime 属性中设置的默认值。 | 双精度 |
MaxTotalTravelTime |
路径允许的最长行驶时间。 行驶时间仅包括在网络上行驶花费的时间,不包括服务或等待时间。 该字段值的单位由分析图层的时间字段单位属性指定。 该字段可以包含空值;空值表示对允许的最长行驶时间无限制。 该字段值不能大于 MaxTotalTime 字段值。 | 双精度 |
MaxTotalDistance | 路径允许的最长行驶距离。 该字段可以包含空值;空值表示对允许的最长行驶距离无限制。 该字段的单位由距离字段单位属性指定。 | 双精度 |
ZoneName | 要用于此路径的区域的名称。 这些是指定路径工作范围的区域。 ZoneName 是 Zones 类中 Name 字段的外键。 该字段可以包含空值;空值表示没有用于此路径的路径区。 | 文本 |
IsHardZone | 指定路径区是否为硬性路径区。 默认值为 Null。 True (1) 表示路径区是硬性的;也就是说,路径区面以外的停靠点不能分配给该路径。 False (0) 表示这样的停靠点仍可进行分配,但是为停靠点提供服务的成本要根据一个函数进行加权得到,该函数基于与路径区的欧氏距离。 这意味着,随着软性区域到停靠点的直线距离的增加,停靠点被分配给路径的可能性将会降低。 | 长整型 |
AssignmentRule | 指定解决问题时是否可以使用路径。 该字段受值的属性域约束,可能的值如下:
| 长整型 |
路径:输出字段
下表介绍了 Routes 要素类的输出字段:
输出字段 | 描述 | 数据类型 |
---|---|---|
Shape | 路径的线形状。 如果将分析图层的输出 Shape 类型属性设置为无,则不返回任何形状。 将输出形状类型属性设置为直线将会返回连接每对连续访问位置的直线路径。 沿网络将返回在网络上追踪其对应路径的线。 | 几何 |
| 这些字段包含约束冲突的汇总,并在求解操作之后进行设置。 每个字段将包含一个冲突。 如果停靠点有多个违规,则将使用下一个 ViolatedConstraint_# 字段。
| 长整型 |
OrderCount | 分配给路径的停靠点数。 | 长整型 |
TotalCost | 路径的总体运营成本,是以下字段值的总和:FixedCost、RegularTimeCost、OvertimeCost 和 DistanceCost。 | 双精度 |
RegularTimeCost | 规定工作时间的成本。 | 双精度 |
OvertimeCost | 加班时间的成本。 | 双精度 |
DistanceCost | 通过将 TotalDistance 和 CostPerUnitDistance 字段值相乘得出的距离成本部分。 | 双精度 |
TotalTime | 路径总持续时间。 该持续时间包括行驶时间以及在停靠点和站点的服务和等待时间。 TotalTime 值是以下字段值的总和:StartDepotServiceTime、EndDepotServiceTime、TotalOrderServiceTime、TotalWaitTime 和 TotalTravelTime。 该字段值的单位由分析图层的时间字段单位属性指定。 | 双精度 |
TotalOrderServiceTime | 在路径上的所有停靠点处所用的总服务时间。 该字段值的单位由分析图层的时间字段单位属性指定。 | 双精度 |
TotalTravelTime | 路径的总行驶时间。 该字段值的单位由分析图层的时间字段单位属性指定。 | 双精度 |
TotalDistance | 路径的总行驶距离。 该字段值的单位由分析图层的距离字段单位属性指定。 | 双精度 |
StartTime | 路径的开始时间。 使用跨越多个时区的流量数据时,该时刻的时区将采用起始站点所处网络元素所在的时区。 | 日期 |
EndTime | 路径的结束时间。 路径在终止站点处完成服务后结束。 此结束时间反映求解程序在优化过程中使用的行程时间。 如果网络包含交通流量数据,求解程序将使用一天内的平均行驶时间。 使用跨越多个时区的流量数据时,该时刻的时区将采用终止站点所处网络元素所在的时区。 | 日期 |
TotalWaitTime | 路径上所有停靠点处的总等待时间。 该字段值的单位由分析图层的时间字段单位属性指定。 | 双精度 |
TotalViolationTime | 路径上所有停靠点处的总冲突时间。 该字段值的单位由分析图层的时间字段单位属性指定。 | 双精度 |
Zones
Zones 要素类用于指定工作区域。 这是一个面要素,用于施加约束,仅服务在某个区域范围内或靠近某个区域的停靠点。
区域:输入字段
下表中介绍了 Zones 要素类的输入字段:
输入字段 | 描述 | 数据类型 |
---|---|---|
ObjectID | 系统管理的 ID 字段。 | 对象 ID |
Shape | 指示网络分析对象地理位置的几何字段。 | 几何 |
Name | 区域的名称。 名称字段对于描述区域而言作用很大,因为该区域可用于多个路径。 名称必须唯一。 名称区分大小写,并且不得为空。 该字段是主键,也用作 Routes 要素图层中的外键。 | 文本 |
站点访问
当路径在站点处开始或结束时,会创建站点访问。 站点访问对象提供与路径访问站点的原因以及在站点发生的事情有关的信息。 在站点为车辆装载的货物量或从车辆卸载的货物量均记录在站点访问的属性中。 另外,还包括用于解释解决方案的其他信息。
站点访问要素仅在求解操作期间创建;在求解过程之前,该分析类始终为空。
站点访问:输出字段
下表介绍了 Depot Visits 要素类的输出字段:
输出字段 | 描述 | 数据类型 |
---|---|---|
ObjectID | 系统管理的 ID 字段。 | 对象 ID |
Shape | 指示网络分析对象地理位置的几何字段。 | 几何 |
DepotName | 所访问站点的名称。 该字段是 Depots 网络分析类中 Name 字段的外键。 如果路径使用虚拟站点,即路径在停靠点(而不是站点)处开始或结束,则 DepotName 为空。 | 文本 |
VisitType | 访问该站点的原因。 此字段受到以下值的属性域的约束:
| 长整型 |
RouteName | 包含该访问的路径的名称。 该字段是 Routes 要素图层中 Name 字段的外键。 | 文本 |
Sequence | 路径上被访问站点的顺序。 路径的输出顺序值在站点访问或停靠点之间分配;从 0 开始(在起始站点处);并且是连续的。 | 长整型 |
ServiceTime | 在站点的服务时间(例如,装货或卸货)。 该字段值的单位由分析图层的时间字段单位属性指定。 | 双精度 |
FromPrevTravelTime | 从路径上的前一个访问位置到该站点的行驶时间。 该字段值的单位由分析图层的时间字段单位属性指定。 | 双精度 |
FromPrevDistance | 从路径上的前一个访问位置到该站点的行驶距离。 该字段值的单位由分析图层的距离字段单位属性指定。 | 双精度 |
ArriveTime | 站点处的到达时间。 此到达时间反映求解程序在优化过程中使用的行程时间。 如果网络包含交通流量数据,求解程序将使用一天内的平均行驶时间。 使用跨越多个时区的交通流量数据时,该时刻的时区将采用站点所处网络元素所在的时区。 | 日期 |
DepartTime | 离开站点的时间。 使用跨越多个时区的流量数据时,该时刻的时区将与站点所在的网络元素的时区相同。 | 日期 |
| 在站点的装载量(例如,重量、体积或数量)。 如果存在多个数量,则 LoadedQuantity_1 到 LoadedQuantity_9 字段中的值将与 Routes 输入表中匹配的 Capacity_1 到 Capacity_9 字段的值对应。 | 双精度 |
| 在站点的卸载量(例如,重量、体积或数量)。 如果存在多个数量,则 UnloadedQuantity_1 到 UnloadedQuantity_9 字段中的值将与 Routes 输入表中匹配的 Capacity_1 到 Capacity_9 字段的值对应。 | 双精度 |
特殊要求
Order Specialties 和 Route Specialties 是两个表,其中列出了停靠点需要的和路径支持的特殊要求。 仅当路径支持某停靠点所需的所有特殊要求时,该路径才能为此停靠点提供服务。
停靠点可能需要一位具有多种特定技能的技术人员或者一辆具有特定功能的货车。 可先将这些技能和功能等添加到 Order Specialties 表中以便为它们建立模型。 接下来,将路径所支持的特殊要求添加到“路径特殊要求”中。 对分析进行求解时,需要某些特殊要求的停靠点会与提供了这些特殊要求的路径进行匹配。
停靠点特殊要求:输入字段
下表介绍了 Order Specialties 表的输入字段:
输入字段 | 描述 | 数据类型 |
---|---|---|
ObjectID | 系统管理的 ID 字段。 | 对象 ID |
OrderName | 停靠点的名称。 该字段是 Orders 网络分析类中 Name 字段的外键。 | 文本 |
SpecialtyName | 特殊要求的名称。 指示停靠点所需的特殊要求。 每行仅列出一个特殊要求。 如果停靠点需要多个特殊要求,则新建一行。 特殊要求名称不能包含空格。 提供一个名为 SeniorTechnician 的高级技术人员特殊要求。 特殊要求名称区分大小写,并且不得为空。 | 文本 |
路径特殊要求:输入字段
下表介绍了 Route Specialties 表的输入字段:
输入字段 | 描述 | 数据类型 |
---|---|---|
ObjectID | 系统管理的 ID 字段。 | 对象 ID |
RouteName | 路径的名称。 该字段是 Routes 网络分析类中 Name 字段的外键。 | 文本 |
SpecialtyName | 特殊要求的名称。 指示路径支持的特殊要求。 每行仅列出一个特殊要求。 如果路径支持多个特殊要求,则新建一行。 特殊要求名称不能包含空格。 提供一个名为 SeniorTechnician 的高级技术人员特殊要求。 特殊要求名称区分大小写,并且不得为空。 | 文本 |
点、线和面障碍
障碍可暂时限制网络各部分、向网络各部分添加阻抗以及调整网络各部分的阻抗大小。 创建新的网络分析图层时,“障碍”类为空。 仅当向其中添加对象时才会对其进行填充 - 但不需要添加障碍。
障碍在所有网络分析图层中均可用,我们将在单独的主题中介绍障碍。
最后一公里配送分析图层属性
以下各小节列出了可为分析图层设置的参数。 它们位于最后一公里配送图层选项卡上,仅当用户在内容窗格中选择最后一公里配送图层或其子图层之一时,该选项卡才可用。
分析
可以使用本部分中的选项来估算配额并运行分析。
运行
加载输入要素并设置分析属性后,请单击运行按钮以运行分析。 如果分析使用配额,并且求解的估算配额数量超过可用配额,则将显示阻止求解的错误消息或者允许您选择是否继续求解的警告消息。
根据网络数据集的源,运行按钮可能会有所不同。
- - 网络分析图层正在引用本地网络数据源。
- - 网络分析图层正在引用 ArcGIS Online 中的网络数据源。
- - 网络分析图层正在引用 ArcGIS Enterprise 门户中的网络数据源。
估算配额
可以使用估算配额按钮估计在所选网络分析图层上运行分析将消耗的服务配额数量。 启用此按钮后,其将指示在求解网络分析图层时将消耗配额。
当发生以下情况时,将启用估算配额按钮:
- 网络分析图层的网络数据源托管在 ArcGIS Online 中。
- 在 ArcGIS Online 中配置 ArcGIS Enterprise 门户路径服务。
当发生以下情况时,将禁用估算配额按钮:
- 网络分析图层的网络数据源托管在本地计算机中。
- 您正在使用在 ArcGIS Enterprise 门户上发布的自己的服务。
当单击估算配额按钮时,将出现一个对话框,其中包含求解当前分析可能会消耗的估算配额数量。 配额估计基于在分析中使用的输入位置的数量。 消耗的实际配额可能会根据 Solve 操作生成的输出而有所不同。 根据您的组织设置配额预算和分配设置的方式,可能不会显示可用配额。 此外,如果网络数据源是具有在 ArcGIS Enterprise 中配置的路径服务的 ArcGIS Online 门户,则配额估计可能并不总是可行。
注:
根据 ArcGIS Online 组织账户和已登录用户的配置,如果估算配额超过可用配额,则求解分析可能会被阻止或者可能会显示警告。
输入数据
使用输入数据部分中的选项导入要参与分析的输入要素。
导入停靠点
单击导入停靠点按钮 以将要素从其他数据源(如点要素图层)加载到 Orders 要素类。
导入站点
单击导入站点按钮 按钮以将要素从其他数据源(如点要素图层)加载到 Depots 要素类。
导入路径
在下拉菜单中,您可以选择导入路径或添加路径。
- 导入路径 - 使用此选项将要素从其他数据源(如线要素图层或独立表)加载到 Routes 要素类。
- 添加路径 - 可通过此选项使用添加车辆配送路径地理处理工具一次性创建多条路径。
导入障碍
可以使用导入点障碍 、导入线障碍 或导入面障碍按钮 ,将来自另一个数据源(例如另一个要素图层)的要素加载到一个障碍要素类(点障碍、线障碍或面障碍)。
导入区域
使用导入区域按钮 将要素从其他数据源(如面要素图层)加载到 Zones 要素类。
导入停靠点特殊要求
使用导入停靠点特殊要求按钮 将要素从其他数据源(例如独立表)加载到 Order Specialties 表中。
导入路径特殊要求
使用导入路径特殊要求按钮 将要素从其他数据源(例如独立表)加载到 Route Specialties 表中。
创建要素
可以使用创建要素按钮 打开创建要素窗格。 从可用模板中进行选择以在当前地图中创建要素。
出行设置
使用出行设置部分中的选项指定出行模式。
模式
使用模式下拉列表可以指定出行模式,这是模拟行人、汽车、货车或其他出行模式移动的一组设置。 下拉列表中的选择是否可用取决于网络分析图层正在引用的网络数据源上配置的出行模式。
注:
对于最后一公里配送图层,仅显示包含基于时间的阻抗属性的出行模式。时间单位
这些是分析图层的子图层和表的时态字段所用的时间单位。 下拉列表中有以下选项可供选择:
- 秒
- 分
- 小时
- 天
距离单位
这些是分析图层的子图层和表的距离字段所用的距离单位。 下拉列表中有以下选项可供选择:
- 米
- 千米
- 英尺
- 英里
- 海里
- 厘米
- 毫米
- 分米
- 码
- 英寸
日期和时间
使用日期和时间部分中的选项指定要在分析中使用的日期和时间。
默认的最早路径开始时间。
这是路径允许的最早开始时间。 求解程序将此字段与默认 Earliest Route Start Date 值结合使用,以指示路径应开始的最早日期和时间。 此时间用于 Routes 类中 EarliestStartTime 字段为空值的所有路径。 如果没有为此选项提供值,则 Routes 类中的所有行必须在 EarliestStartTime 字段中指定一个值。 将网络数据集与跨越多个时区的交通流量数据结合使用时,EarliestStartTime 的时区与起始站点所在的边或交汇点的时区相同。
默认的最早路径开始日期
路径允许的最早开始日期。 求解程序将此字段与 EarliestStartTime 结合使用,以指示路径应开始的最早日期和时间。 此日期用于 Routes 类中 EarliestStartDate 字段为空值的所有路径。 如果没有为此选项提供值,则 Routes 类中的所有行必须在 EarliestStartDate 字段中指定一个值。 将网络数据集与跨越多个时区的交通流量数据结合使用时,EarliestStartTime 的时区与起始站点所在的边或交汇点的时区相同。
最长总时间
允许的最长路径持续时间。 路径持续时间包括行驶时间以及在停靠点和站点的服务和等待时间。 此值用于 Routes 类中 MaxTotalTime 字段为空值的所有路径。 如果未指定此参数,则 Routes 类中的所有行必须在 MaxTotalTime 字段中指定一个值。
参考时区
在参考时区下拉列表 中,可以选择要在分析中使用的时区。 选项如下:
- 各位置的本地时间
- 协调世界时间 (UTC)
输出几何
在输出几何部分中,使用下拉菜单中的选项指定输出在地图上的显示方式。
输出几何线性形状类型
该分析将始终使用您指定的设置沿着此网络求解成本最低的路径,但除了在地图上显示沿此网络的真实路径外,您还可以在地图上使用简单直线表示停靠点之间的路径或根本不显示任何线。
- 没有线 - 不生成输出线性形状。
- 直线 - 将简化几何输出为直线。
- 沿网络 - 在地图上沿网络生成实际路径。
绘制
可以使用符号系统按钮 访问活动网络分析图层的符号系统窗格。 通过选择以下选项之一,可以配置活动网络分析图层的子图层的符号系统:
- 单色 - 此选项适用于所有网络分析图层类型。 在活动网络分析图层中,除了障碍之外的所有要素子图层都将使用具有指定颜色的相同单一符号。 例如,为 Route 图层选择单色蓝色会将所有停靠点和路径要素转换为相同的蓝色。
- 链接颜色 - 此选项适用于 Route、Last Mile Delivery 和 Vehicle Routing Problem 图层。 可将配色方案应用于子图层,以使相关要素使用相同的颜色进行符号化。 此符号系统配置使用相同颜色来符号化相关要素,由此更易于在视觉上区分地图中的不同路径及其关联要素。 例如,对于具有多条路径的 Route 图层,每条路径和分配至该路径的每个停靠点都会被分配匹配的颜色。
过滤
可以过滤网络分析子图层,以仅显示与主图层中所选要素相关的要素。
添加过滤器 - 将过滤器应用于网络分析图层的子图层,以仅显示与主子图层的所选要素相关的要素。 定义查询将自动创建并应用于相关子图层。 每次单击添加过滤器按钮时,都会创建一个同名的新定义查询,由此替换之前的定义查询。
在主 Routes 子图层中选择某个要素时,将在 Routes 子图层(主图层)以及相关的 Orders 和 Depot Visits 子图层上创建名为 Routes 的定义查询。
移除过滤器 - 删除主图层和相关子图层上的定义查询。
高级
使用高级部分中的选项指定分析的间距设置。
序列间距
此设置可指定在求解分析时,Orders 子图层相邻停靠点的字段中保留的数值间距。 该值作为各个路径上实际停靠点序列的乘数。 例如,如果间距为 5,则路径上的第一个停靠点的 Sequence 字段值为 5,路径上第二个停靠点的 Sequence 字段值为 10,第三个为 15,以此类推。 此设置有助于在初始路径计划创建后插入停靠点,因为新的停靠点可以插入序列间距中。
首次求解分析时,Sequence 字段值将使用指定的序列间距填充顺序值。 在同一分析的后续求解中,将保留现有停靠点的 Sequence 字段值,新的停靠点会将未被其他停靠点使用的可用整数用于 Sequence 字段,插入到间距中。 如果序列间距设置为 1,则每次求解时,序列值都会更新为连续的值。
方向
使用方向部分中的选项指定是否生成方向。
注:
“最后一公里配送”求解程序使用时间中立的起点目的地成本矩阵 (OD) 来确定路径分配和排序。 此时间中立 OD 的值用于填充停靠点、站点访问和路径字段的时间和距离成本,以与用于解决问题的优化逻辑保持一致。 在确定了每条路径的停靠点和站点访问顺序之后,路径求解器将用于生成方向并使用路径的实际开始时间,从而可以根据交通情况为方向字段填充更准确的到达时间。
求解时输出
启用此选项可在求解当前网络分析图层后生成方向。
显示方向
如果选中求解后输出选项,则单击显示方向按钮 时,方向窗格中将显示解中每条路径的转向指示。
共享为
使用路径图层按钮可共享分析的输出。
共享为路径图层
可以使用路径图层按钮 将分析结果共享为路径图层。 单击此按钮将打开共享为路径图层地理处理工具。 此工具运行后,分析结果将共享为门户中的路径图层项目。