参数列表

以下页面包含 Route Optimization API optimizeTours 方法的以下组件的参数表(按字母顺序列出):

这些参数表仅列出并简要说明了顶级对象和主要参数,以便于发现。如需查看包含完整说明和所有嵌套参数的详尽列表,请参阅 API 参考文档

请求正文

请求正文的数据结构。

请求正文包含以下元素,这些元素在右侧的图表中进行了说明,并在下表中列出:

  • OptimizeToursRequest:包含模型和求解参数的顶级请求对象。
    • ShipmentModel:包含货件、车辆和全局限制的核心数据结构。
      • Shipment:包含取货和送货的任务。
        • VisitRequest:取货或送货的地点和限制。
      • Vehicle:可用于执行配送任务的车辆。
有子女 参数 物业类型 说明
OptimizeToursRequest allowLargeDeadlineDespiteInterruptionRisk 布尔值(true/false 如果值为 true,即使超时时间设置为可能会导致服务器中断的较大值(超过 30 分钟),系统也会处理相应请求。
considerRoadTraffic 布尔值(true/false 如果值为 true,则使用路况数据进行路线规划。如果为 false,则仅使用道路网速度。
geodesicMetersPerSecond 数值 useGeodesicDistances 为 true 时,此速度用于计算出行时间。
injectedFirstSolutionRoutes[] 对象数组 (ShipmentRoute) 从之前解决方案中的路线开始优化。
injectedSolutionConstraint object (InjectedSolutionConstraint) 将解决方案限制为与现有路线类似,指定必须保留哪些属性以及可以放宽哪些属性。
interpretInjectedSolutionsUsingLabels 布尔值(true/false 如果为 true,则按注入路线中的 label 而不是数组索引来匹配相应货物/车辆。
label 字符串 用于标识请求的任意标签,会在响应中返回。
maxValidationErrors 整数 指定要返回的验证错误数量上限。如果未指定,则应用默认限制。
model object (ShipmentModel) 必需。要优化的一组车辆和货件。
populatePolylines 布尔值(true/false 如果值为 true,则返回路线的编码折线。
populateTransitionPolylines 布尔值(true/false 如果值为 true,则返回各个访问之间转换的编码折线。
refreshDetailsRoutes[] 对象数组 (ShipmentRoute) 要刷新的路线列表。此功能可重新计算现有路线的多段线、时长和距离,而无需修改访问顺序。
searchMode 枚举 (SearchMode) RETURN_FAST(快速获得结果)或 CONSUME_ALL_AVAILABLE_TIME(在超时时间内获得最佳质量)。
solvingMode 枚举 (SolvingMode) DEFAULT_SOLVE(默认)或 VALIDATE_ONLY,用于验证模型而不进行求解。
timeout 时长 求解器应运行的最长时间(例如,“30s”“300s”)。
useGeodesicDistances 布尔值(true/false 如果值为 true,则使用测地线(直线)距离和 geodesicMetersPerSecond 速度计算出行距离和时间。
ShipmentModel
(属于 OptimizeToursRequest
durationDistanceMatrices[] 对象数组 (DurationDistanceMatrix) 指定用于在地点之间进行路线规划的自定义时长和距离矩阵。
durationDistanceMatrixDstTags[] 字符串数组 用于定义自定义时长和距离矩阵的目标(列)的标记。
durationDistanceMatrixSrcTags[] 字符串数组 用于定义自定义时长和距离矩阵的来源(行)的标记。
globalDurationCostPerHour 数值 从最早的车辆启动时间到最晚的车辆结束时间,路线的全球时间跨度的每小时费用。
globalEndTime 时间戳 模型中任何事件的最晚结束时间。
globalStartTime 时间戳 模型中任何活动的最早开始时间。
maxActiveVehicles 整数 解决方案中允许处于有效状态的车辆数量上限。
precedenceRules[] 对象数组 (PrecedenceRule) 用于定义特定货件之间顺序限制的规则。
shipments[] 对象数组 (Shipment) 要处理的货件的列表。
shipmentTypeIncompatibilities[] 对象数组 (ShipmentTypeIncompatibility) 规则,用于防止同一车辆运送某些类型的货物。
shipmentTypeRequirements[] 对象数组 (ShipmentTypeRequirement) 要求使用同一车辆运送特定类型货件的规则。
transitionAttributes[] 对象数组 (TransitionAttributes) 指定具有特定标记的访问之间的过渡的额外费用、延迟和距离限制。
vehicles[] 对象数组 (Vehicle) 可用于执行货件运输的车辆列表。
Shipment
(属于 ShipmentModel
allowedVehicleIndices[] 整数数组 允许执行相应配送任务的车辆的索引。
costsPerVehicle[] map(键:整数,值:数字) 如果特定车辆提供此货件的运输服务,则会产生额外费用。
costsPerVehicleIndices[] 整数数组 应用 costsPerVehicle 值的车辆的索引。
deliveries[] 对象数组 (VisitRequest) 配送货件的替代方案。
ignore 布尔值(true/false 如果值为 true,则忽略相应配送信息,并且不会在优化中使用。
label 字符串 用于标识货件的用户定义标签,在响应中返回。
loadDemands map (key: string, value: Load) 运输相应货物所需的容量(例如重量、体积)。
penaltyCost 数值 如果无法提供配送服务,则需支付的费用。如果未设置,则必须发货。
pickups[] 对象数组 (VisitRequest) 取件的替代方案。
pickupToDeliveryAbsoluteDetourLimit 时长 与直达路线相比,允许的取货地点与送货地点之间的最大绝对绕行时间。
pickupToDeliveryRelativeDetourLimit 数值 允许货件的最大相对绕行时间(例如,值为 2.0 表示总时间最多可以是直达行程时间的 2 倍)。
pickupToDeliveryTimeLimit 时长 从取货开始到送货开始之间的最长允许时长。
shipmentType 字符串 用于不兼容规则和要求规则的类型分类。
VisitRequest
Shipmentpickupsdeliveries 的组成部分)
arrivalLocation object (LatLng) 地理到达位置(以纬度/经度坐标表示)。
arrivalWaypoint object (Waypoint) 车辆到达以执行访问的位置。由坐标或地点 ID 定义。
cost 数值 如果求解器选择此特定访问请求,则会产生的费用。
departureLocation object (LatLng) 地理出发位置(以纬度/经度坐标表示)。
departureWaypoint object (Waypoint) 车辆在完成访问后出发的地点。如果省略,则假定与 arrivalWaypoint 相同。
duration 时长 访问(服务时间)的持续时间,例如装货/卸货所需的时间。
label 字符串 此特定访问请求的用户定义标签,在响应中返回。
loadDemands map (key: string, value: Load) 指定本次访问的负荷变化的需求(例如,-1 表示要寄送包裹)。
tags[] 字符串数组 附加到此访问请求的标记。这些数据用于计算相应访问与使用 transitionAttributes 的其他访问之间的出行时间。
timeWindows[] 对象数组 (TimeWindow) 相应访问的允许到达时间窗口。
visitTypes[] 字符串数组 描述访问类型的字符串(例如,“delivery”“installation”)。用于应用车辆模型中的 extraVisitDurationForVisitType
Vehicle
(属于 ShipmentModel
breakRule object (BreakRule) 定义了休息时间规则(例如强制性午休)。
costPerHour 数值 每小时的费用,以整个路线的持续时间为准。
costPerKilometer 数值 每行驶 1 公里的费用。
costPerTraveledHour 数值 车辆行驶时的每小时费用。
endLocation object (LatLng) 地理位置的终点(以纬度/经度坐标表示)。
endTags[] 字符串数组 用于定义车辆结束状态的标记,用于过渡属性。
endTimeWindows[] 对象数组 (TimeWindow) 车辆结束路线的允许时间窗口。
endWaypoint object (Waypoint) 使用航点(坐标或地点 ID)表示的地理位置终点。
extraVisitDurationForVisitType map(键:字符串,值:时长 根据访问的 visitType 为访问添加额外时长。
fixedCost 数值 如果车辆被使用,则无论路线的距离或时长如何,都会收取一笔固定费用。
ignore 布尔值(true/false 如果为 true,则忽略相应车辆,且不会在优化中使用该车辆。
label 字符串 车辆的用户指定标签,在响应中返回。
loadLimits map (key: string, value: LoadLimit) 车辆容量(例如最大重量、最大体积)。
routeDistanceLimit object (DistanceLimit) 车辆路线总距离的硬性或软性限制。
routeDurationLimit object (DurationLimit) 车辆路线总时长的硬性或软性限制。
routeModifiers object (RouteModifiers) 一项或多项限制条件,例如避开收费站、高速公路或轮渡。
startLocation object (LatLng) 地理起点位置(以纬度/经度坐标表示)。
startTags[] 字符串数组 用于定义车辆起始状态的标记,用于过渡属性。
startTimeWindows[] 对象数组 (TimeWindow) 车辆开始行驶路线的允许时间窗口。
startWaypoint object (Waypoint) 使用途经点(坐标或地点 ID)的地理起点。
travelDurationLimit object (DurationLimit) 车辆总行驶时长(不包括等待/服务时间)的硬性或软性限制。
travelDurationMultiple 数值 应用于出行时间的乘数(例如,1.5 会使旅行速度减慢 50%)。
travelMode 枚举 (TravelMode) 出行方式(例如,DRIVINGWALKING)。会影响出行时间和距离。
unloadingPolicy 枚举 (UnloadingPolicy) 定义卸载顺序(例如,LIFOLAST_IN_FIRST_OUT)。
usedIfRouteIsEmpty 布尔值(true/false 如果值为 true,即使没有货件,车辆也会被视为已使用。它会产生固定费用,并在起始位置和结束位置之间移动。

响应正文

响应正文的数据结构。

响应正文包含以下元素,这些元素在右侧的图表中进行了说明,并在下表中列出:

  • OptimizeToursResponse:包含优化后的路线和指标的顶级响应对象。
    • Metrics:解决方案的总体费用和执行统计信息。
    • ShipmentRoute:分配给单个车辆的访问顺序和行驶路线。
      • Visit:路线上的一个停靠点,用于取货或送货。
      • Transition:两个路线停靠站之间的行程路径和时长。
      • AggregatedMetrics:时长、距离和其他指标的总和。此元素可以同时存在于 MetricsShipmentRoute 中。
有子女 参数 物业类型 说明
OptimizeToursResponse metrics object (Metrics) 解决方案的汇总指标,包括总费用、总距离、总时长和车辆使用次数。
requestLabel 字符串 从请求的 label 字段复制的标签。用于将响应与原始请求相关联。
routes[] 对象数组 (ShipmentRoute) 为每辆车计算的路线列表。包含每辆车的条目,无论车辆是否被使用。
skippedShipments[] 对象数组 (SkippedShipment) 被跳过(未提供服务)的货件列表,以及跳过原因。
validationErrors[] 对象数组 (OptimizeToursValidationError) 输入模型中发现的验证错误列表。如果 solvingMode 设置为 VALIDATE_ONLY,或者在求解期间发生错误,则会填充此字段。
Metrics
(属于 OptimizeToursResponse
aggregatedRouteMetrics object (AggregatedMetrics) 所有路线的汇总统计信息,例如总行程距离、总时长和等待时间。
costs map(键:字符串,值:数字) 按类型细分的费用(例如,“model.vehicles.cost_per_kilometer”“model.shipments.penalty_cost”)。
earliestVehicleStartTime 时间戳 所有已用车辆的最早开始时间。
latestVehicleEndTime 时间戳 所有已使用车辆中最晚的结束时间。
skippedMandatoryShipmentCount 整数 跳过的强制性配送次数。
totalCost 数值 解决方案的总费用,即所有路线费用和跳过配送的罚款之和。
usedVehicleCount 整数 解决方案中使用的车辆数量。
AggregatedMetrics
(属于 MetricsShipmentRoute
breakDuration 时长 所有路线的休息总时长。
costs map(键:字符串,值:数字) 按类型细分的费用(例如,“model.vehicles.cost_per_kilometer”“model.shipments.penalty_cost”)。
delayDuration 时长 所有路线的总延迟时长。
earliestVehicleStartTime 时间戳 所有已用车辆的最早开始时间。
latestVehicleEndTime 时间戳 所有已使用车辆中最晚的结束时间。
maxLoads map (key: string, value: VehicleLoad) 解决方案中任何车辆在任何时间点所载的最大负载,按负载类型键控。
performedShipmentCount 整数 所有车辆完成的配送总次数。
skippedMandatoryShipmentCount 整数 跳过的强制性配送次数。
totalCost 数值 解决方案的总费用,即所有路线费用和跳过配送的罚款之和。
totalDuration 时长 所有路线的总时长(出行 + 等待 + 延迟 + 休息 + 拜访)。
travelDistanceMeters 数值 所有路线的总出行距离(以米为单位)。
travelDuration 时长 所有路线的总出行时长。
usedVehicleCount 整数 解决方案中使用的车辆数量。
visitDuration 时长 所有路线中执行访问(装货/卸货)所花费的总时长。
waitDuration 时长 所有路线的总等待时长。
ShipmentRoute
(属于 OptimizeToursResponse
breaks[] 对象数组 (Break) 车辆在路线中休息的列表。
hasTrafficInfeasibilities 布尔值(true/false 指示路线是否存在任何与交通相关的不可行性。
metrics object (AggregatedMetrics) 与相应路线相关的指标,例如总里程和总时长。
routeCosts map(键:字符串,值:数字) 相应路线的费用明细。键是费用类型(例如,“cost_per_hour”),值是金额。
routePolyline object (EncodedPolyline) 表示路线的完整地理路径的编码多段线。
routeTotalCost 数值 路线的总费用,即 routeCosts 映射中所有费用的总和。
transitions[] 对象数组 (Transition) 连接各个访问会话的有序转换(旅程段)列表。
vehicleEndTime 时间戳 车辆完成路线的时间。
vehicleIndex 整数 执行相应路线的源 ShipmentModel 中车辆的索引。
vehicleLabel 字符串 车辆的用户定义标签,从请求模型复制而来。
vehicleStartTime 时间戳 车辆开始行驶路线的时间。
visits[] 对象数组 (Visit) 车辆在此路线上执行的到访(取货和送货)顺序。
Visit
(属于 ShipmentRoute
detour 时长 与前一次访问和下一次访问之间的直接路径相比,本次访问产生的额外绕行时间。
isPickup 布尔值(true/false 如果值为 true,则表示相应访问是取货访问。如果为 false,则表示是交付。
loadDemands map (key: string, value: Load) 相应访问所满足的负荷需求(例如,对于送货,值为 -1)。这是相应 VisitRequest 负载需求的副本。
shipmentIndex 整数 相应来源模型中此访问所服务的 Shipment 字段的索引。
shipmentLabel 字符串 ShipmentModel 复制的货件标签。
startTime 时间戳 预约的开始时间。
visitLabel 字符串 访问请求的标签,从模型中的 VisitRequest 复制而来。
visitRequestIndex 整数 相应访问所对应的货件取件或送货列表中的 VisitRequest 的索引。
Transition
(属于 ShipmentRoute
breakDuration 时长 此过渡期间的休息时长。
delayDuration 时长 相应转换期间产生的延迟时长(例如,提前到达并等待时间窗口)。
routePolyline object (EncodedPolyline) 表示相应特定过渡路径的编码多段线。
routeToken 字符串 一个不透明的令牌,可传递给 Google Navigation SDK 以在导航期间重建路线。
startTime 时间戳 相应过渡的开始时间。
totalDuration 时长 过渡的总时长,包括旅途、等待、休息和延迟时间。
trafficInfoUnavailable 布尔值(true/false 如果值为 true,则表示相应过渡时段没有流量数据。
travelDistanceMeters 数值 相应过渡期间的行驶距离(以米为单位)。
travelDuration 时长 此过渡期间的出行时长。
vehicleLoads map (key: string, value: VehicleLoad) 车辆在此过渡期间所载的负荷,按负荷类型(例如 “weight”)。
waitDuration 时长 在开始下一次访问之前等待的时长。