负载需求和限制是一种可用于管理容量的约束条件。它们用于指定运输订单的所需载重量和车辆的载重量上限,以便您根据这些约束条件优化路线分配。
负载需求和限制可支持以下目标:
- 防止车辆超载。
- 监控随着运输车辆上货和送货的变化,车辆载重情况如何变化。
- 限制车辆可以访问特定地点的次数。
负载需求和限制在以下属性中指定:
loadDemands
用于指定特定运输订单所需的容量。loadLimits
用于指定给定车辆的载客量上限。
结构
如图所示,负载需求和限制的结构如下:
loadDemands
是Shipment
的属性。Shipment
可以有多个加载需求。loadLimits
是Vehicle
的属性。一个Vehicle
可以有多个负载限制。
属性
本部分介绍了负载需求和限制的属性,具体如下:
加载类型
载荷类型是字符串键,用于标识运输的载荷需求类型和车辆的载荷限制。加载类型具有以下重要特征:
- 用户定义:您可以定义加载类型。没有针对加载类型的预定义系统变量。
- 共享:装载类型在运输和车辆之间共享。这意味着,只有在运输的货物类型与车辆的载货类型相符时,运输任务才会使车辆的载货量达到上限。如果车辆未为特定类型指定任何载重限制,则可以携带无限量的该类型载荷。
表示加载类型的字符串键使用 Protocol Buffers 映射类型语法。为避免出现问题,这些字符串键不得为 null。在命名负载类型时,建议使用描述负载类型及其单位的标识符。例如:weightKg、volume_gallons、palletcount 或 frequencyDaily。
Load
和LoadLimit
Load
和 LoadLimit
对象包含用于定义运输和车辆载重要求的特定属性,下表介绍了这些属性:
对象 | 育有子女 | 属性 | 物业类型 | 房源说明 |
---|---|---|---|---|
Load |
loadDemands |
amount |
string(int64 格式) | 指定类型中的运输容量要求。 |
LoadLimit |
loadLimits |
maxLoad |
string(int64 格式) | 定义指定类型的车辆的最大载重量。 |
示例
以下示例展示了负载需求的结构,您可以将 loadDemands
类型设置为字符串,并将 amount
属性设置为 int64 格式的字符串:
"loadDemands": {
"MATCHING_LOAD_TYPE ": {
"amount": "YOUR_LOAD_AMOUNT "
}
}
以下示例展示了负载限制的最基本结构,您可以将 loadLimits
类型设置为字符串,并将 maxLoad
属性设置为 int64 格式的字符串:
"loadLimits": {
"MATCHING_LOAD_TYPE ": {
"maxLoad": "YOUR_MAX_LOAD "
}
}
试试看
使用上面的代码示例创建一个虚构场景。在此场景中,您有一个重 10 千克的运输包裹,以及一辆可运载 100 千克的车辆:
在
loadDemands
示例中,将加载类型定义为weightKg
。完成此操作后,
loadLimits
示例中的负载类型也会填充,并共享负载类型。请注意,loadDemands
和loadLimits
的类型必须匹配,才能使运输消耗车辆的配额。在同一
loadDemands
示例中,将amount
属性设为10
。这意味着,包裹的重量为 10 公斤。
在
loadLimits
示例中,将maxLoad
属性设置为100
。这意味着车辆最多可载重 100 公斤。
请注意,没有一组预定义的类型。在此示例中,您可以将千克更改为磅,或将其更改为线性测量值(而非重量)。这种灵活性可让您根据自己的具体需求量身定制负载需求和限制。
请求示例
以下示例展示了基本 optimizeTours
请求的结构,其中包含在运输中使用 loadDemands
和在车辆中使用 loadLimits
:
{ "model": { "shipments": [ { "pickups": [ { "arrivalLocation": { "latitude": 00.000000, "longitude": 00.000000 } } ], "deliveries": [ { "arrivalLocation": { "latitude": 00.000000, "longitude": 00.000000 } } ], "loadDemands": { "MATCHING_LOAD_TYPE ": { "amount": "YOUR_LOAD_AMOUNT " } } } ], "vehicles": [ { "startLocation": { "latitude": 00.000000, "longitude": 00.000000 }, "endLocation": { "latitude": 00.000000, "longitude": 00.000000 }, "costPerKilometer": 1.0, "loadLimits": { "MATCHING_LOAD_TYPE ": { "maxLoad": "YOUR_MAX_LOAD " } } } ] } }
请注意,运输中可以有多个装载需求,车辆可以有多个装载限制,这样您就可以提供复杂的约束条件,以便在优化车队路线时加以考虑。