- JSON 表現
- 配送
- VisitRequest
- LatLng
- Waypoint
- ロケーション
- TimeWindow
- Vehicle
- TravelMode
- RouteModifiers
- UnloadingPolicy
- LoadLimit
- 間隔
- DurationLimit
- DistanceLimit
- BreakRule
- BreakRequest
- FrequencyConstraint
- DurationDistanceMatrix
- 行
- TransitionAttributes
- ShipmentTypeIncompatibility
- IncompatibilityMode
- ShipmentTypeRequirement
- RequirementMode
- PrecedenceRule
配送モデルには、一連の車両によって実行される一連の配送が含まれます。このモデルでは、次の合計である総費用を最小限に抑えます。
- 車両のルーティング費用(合計時間あたりの費用、移動時間あたりの費用、すべての車両の固定費用の合計)。
- 未実施の配送に対するペナルティ。
- 配送のグローバル期間の費用
JSON 表現 |
---|
{ "shipments": [ { object ( |
フィールド | |
---|---|
shipments[] |
モデルで実行する必要がある一連の配送。 |
vehicles[] |
訪問に使用できる車両のセット。 |
global |
モデルのグローバルな開始時間と終了時間: この範囲外の時間は無効と見なされます。 モデルの時間範囲は 1 年未満にする必要があります。つまり、
RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: |
global |
未設定の場合、デフォルトとして 1971 年 1 月 1 日 00:00:00 UTC(秒: 31536000、ナノ秒: 0)が使用されます。 RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: |
global |
全体的なプランの「グローバルな期間」は、すべての車両の有効な開始時間の最も早い時間と有効な終了時間の最も遅い時間の差です。ユーザーは、その数量に 1 時間あたりの費用を割り当てることで、たとえばジョブの完了を最短にするように最適化できます。この費用は |
duration |
モデルで使用される所要時間と距離のマトリックスを指定します。このフィールドが空の場合は、 使用例:
|
duration |
所要時間と距離の行列のソースを定義するタグ。 タグは |
duration |
所要時間と距離のマトリックスの宛先を定義するタグ。 タグは |
transition |
モデルに追加された遷移属性。 |
shipment |
互換性のない shipment_types のセット( |
shipment |
|
precedence |
モデルで適用する必要がある優先ルールのセット。 |
max |
アクティブな車両の最大数を制限します。車両は、ルートで 1 件以上の配送を実行した場合にアクティブになります。これは、ドライバーの数よりも車両の数が少なかったり、車両のフリートが異種である場合に、ルートの数を制限するために使用できます。最適化により、使用する最適な車両のサブセットが選択されます。真に正である必要があります。 |
配送
1 つの商品の配送(集荷から配達まで)。配送が完了したと見なされるには、1 台の車両が集荷場所のいずれかに立ち寄り(それに応じて予備の容量を減らします)、その後、配達場所のいずれかに立ち寄る(それに応じて予備の容量を再び増やします)必要があります。
JSON 表現 |
---|
{ "displayName": string, "pickups": [ { object ( |
フィールド | |
---|---|
display |
配送のユーザー定義の表示名。最大 63 文字で、UTF-8 文字を使用できます。 |
pickups[] |
配送に関連付けられた一連の集荷オプション。指定しない場合、車両は配達先に対応する場所にのみ移動する必要があります。 |
deliveries[] |
配送に関連付けられた配送方法のセット。指定しない場合、車両は集荷に対応する場所にのみ立ち寄る必要があります。 |
load |
荷物の積載量(重量、容積、パレット数など)。マップのキーは、対応する負荷のタイプを記述する識別子で、理想的には単位も含める必要があります。たとえば、「weight_kg」、「volume_gallons」、「pallet_count」などです。特定のキーがマップにない場合、対応する負荷は null と見なされます。 |
allowed |
この配送を実行できる車両のセット。空白の場合、すべての車両が実行する可能性があります。車両は、 |
costs |
この配送が各車両で配達される際に発生する費用を指定します。指定する場合は、次のいずれかが必要です。
これらの費用は |
costs |
|
pickup |
集荷から配達までの最短経路と比較した、迂回経路の絶対的な最大所要時間を指定します。指定する場合は、正の値にする必要があります。また、配送には少なくとも集荷と配達が含まれている必要があります。 たとえば、t は、選択した集荷オプションから選択した配送オプションに直接移動するのにかかる最短時間とします。次に、
同じ配送で相対制限と絶対制限の両方が指定されている場合、可能な集荷/配達ペアごとに、より制限の厳しい制限が使用されます。2017 年 10 月現在、迂回路は、移動時間が車両に依存しない場合にのみサポートされています。
|
pickup |
集荷の開始から配送の開始までの最大時間を指定します。指定する場合は、正の値にする必要があります。また、配送には少なくとも集荷と配達が含まれている必要があります。これは、受け取りと配送に選択した代替手段や、車両の速度には依存しません。これは、最大迂回制約とともに指定できます。ソリューションは両方の指定を尊重します。
|
shipment |
この配送の「タイプ」を指定する空でない文字列。この機能は、 1 回の訪問に指定される |
label |
この配送のラベルを指定します。このラベルは、対応する |
ignore |
true の場合、この配送をスキップしますが、 配送を無視すると、モデルに
|
penalty |
配送が完了しなかった場合、このペナルティはルートの総費用に追加されます。集荷または配送のいずれかのオプションが実施された場合、配送は完了と見なされます。費用は、モデル内の他のすべての費用関連フィールドで使用されているのと同じ単位で表すことができ、正の値にする必要があります。 重要: このペナルティが指定されていない場合、ペナルティは無限と見なされます。つまり、配送が完了する必要があります。 |
pickup |
集荷から配達までの最短経路と比較した、迂回経路の最大相対時間を指定します。指定する場合は、正の値にする必要があります。また、配送には少なくとも集荷と配達が含まれている必要があります。 たとえば、t は、選択した集荷オプションから選択した配送オプションに直接移動するのにかかる最短時間とします。次に、
同じ配送で相対制限と絶対制限の両方が指定されている場合、可能な集荷/配達ペアごとに、より制限の厳しい制限が使用されます。2017 年 10 月現在、迂回路は、移動時間が車両に依存しない場合にのみサポートされています。 |
VisitRequest
車両で実施できる訪問のリクエスト: 地理的位置(2 つまで、下記を参照)、時間帯で表される営業時間と閉店時間、サービス時間(車両が到着してから商品の集荷または配達を完了するまでの時間)。
JSON 表現 |
---|
{ "arrivalLocation": { object ( |
フィールド | |
---|---|
arrival |
この |
arrival |
この |
departure |
この |
departure |
この |
tags[] |
訪問リクエストに関連付けられたタグを指定します。空の文字列や重複する文字列は使用できません。 |
time |
訪問の到着時間を制限する時間枠。車両は到着時間の枠外に出発する場合があります。つまり、到着時間と所要時間が時間枠内に収まる必要はありません。車両が
時間枠は重複しないようにする必要があります。つまり、時間枠が重なったり、隣接したりしないようにする必要があります。また、時間枠は昇順に並べ替える必要があります。
|
duration |
訪問時間(車両が到着してから出発するまでの時間)(想定される待ち時間に追加します。
|
cost |
車両ルートでこの訪問リクエストに対応するための費用。これにより、配送の代替の集荷または配達ごとに異なる費用を支払うことができます。この費用は |
load |
このアクセス リクエストの読み込みデマンド。これは |
visit |
訪問の種類を指定します。車両がこの訪問を完了するために必要な追加時間を割り当てるために使用できます( 型は 1 回だけ使用できます。 |
label |
この |
LatLng
緯度と経度のペアを表すオブジェクト。これは緯度を表す倍精度値と経度を表す倍精度値のペアで表現されます。特に明記されていない場合、このオブジェクトは WGS84 規格に準拠する必要があります。値は正規化範囲内で指定する必要があります。
JSON 表現 |
---|
{ "latitude": number, "longitude": number } |
フィールド | |
---|---|
latitude |
緯度(度単位)。範囲 [-90.0, +90.0] 内になければなりません。 |
longitude |
経度(度単位)。範囲 [-180.0, +180.0] 内になければなりません。 |
ウェイポイント
ウェイポイントをカプセル化します。ウェイポイントは、VisitRequest の到着地と出発地、および車両の出発地と終点を示します。
JSON 表現 |
---|
{ "sideOfRoad": boolean, // Union field |
フィールド | |
---|---|
side |
省略可。このウェイポイントの位置は、車両を優先的に道路の特定の側に停車することを指示することを示します。この値を設定すると、ルートはスポットの中心から偏った側の道路の端に車両を停車できるように、スポットを通過します。このオプションは、移動モードが「歩行」の場合に機能しません。 |
共用体フィールド location_type 。場所を表すさまざまな方法。location_type は次のいずれかになります。 |
|
location |
地理座標(オプションの向きを含む)で指定されたポイント。 |
place |
ウェイポイントに関連付けられているスポット プレイス ID。 |
場所
位置情報(地理的位置と、オプションの向き)をカプセル化します。
JSON 表現 |
---|
{
"latLng": {
object ( |
フィールド | |
---|---|
lat |
ウェイポイントの地理座標。 |
heading |
トラフィック フローの方向に関連付けられたコンパス方位。この値は、乗車と降車に使用する道路の側面を指定するために使用されます。向きの値は 0 ~ 360 の範囲で指定できます。0 は真北の向き、90 は真東の向きなどを指定します。 |
TimeWindow
時間帯は、訪問の到着時間や車両の開始時間と終了時間など、イベントの時間を制限します。
厳密な時間枠の境界(startTime
と endTime
)は、イベントの最も早い時刻と最も遅い時刻を適用します(startTime <= event_time <=
endTime
など)。ソフト時間枠の下限 softStartTime
は、イベントが softStartTime より前に発生した場合、発生までの時間に比例した費用が発生するため、イベントが softStartTime
以降に発生することを優先することを表します。ソフト時間枠の上限 softEndTime
は、イベントが softEndTime
より前に発生することを優先し、イベントが softEndTime
より後に発生した場合は、発生した時間に比例した費用が発生することを示します。startTime
、endTime
、softStartTime
、softEndTime
は、グローバルな時間制限(ShipmentModel.global_start_time
と ShipmentModel.global_end_time
を参照)内に収め、次の条件を満たす必要があります。
0 <= `startTime` <= `endTime` and
0 <= `startTime` <= `softStartTime` and
0 <= `softEndTime` <= `endTime`.
JSON 表現 |
---|
{ "startTime": string, "endTime": string, "softStartTime": string, "softEndTime": string, "costPerHourBeforeSoftStartTime": number, "costPerHourAfterSoftEndTime": number } |
フィールド | |
---|---|
start |
厳密な時間枠の開始時間。指定しない場合、 RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: |
end |
厳密な時間枠の終了時間。指定しない場合、 RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: |
soft |
時間枠のソフト開始時間。 RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: |
soft |
時間枠のソフト終了時間。 RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: |
cost |
イベントが softStartTime より前に発生した場合に、モデル内の他の費用に追加される 1 時間あたりの費用。次のように計算されます。
この費用は正の値にする必要があります。このフィールドは、softStartTime が設定されている場合にのみ設定できます。 |
cost |
イベントが
この費用は正の値にする必要があります。このフィールドは、 |
車両
配送に関する問題が発生している車両をモデル化します。配送に関する問題を解決すると、この車両のルートとして startLocation
から endLocation
までのルート構築が開始されます。ルートは、一連の訪問です(ShipmentRoute
を参照)。
JSON 表現 |
---|
{ "displayName": string, "travelMode": enum ( |
フィールド | |
---|---|
display |
車両のユーザー定義の表示名。最大 63 文字で、UTF-8 文字を使用できます。 |
travel |
移動モード。車両が走行できる道路と速度に影響します。 |
route |
特定の車両のルートの計算方法に影響する、満たす必要がある一連の条件。 |
start |
車両が配送の集荷を開始する地理的位置。指定しない場合、車両は最初の集荷から開始します。配送モデルに所要時間と距離のマトリックスがある場合は、 |
start |
車両が荷物を集荷する前に出発する地理的位置を表すウェイポイント。 |
end |
最後の |
end |
車両が最後の |
start |
車両のルートの開始点に適用されるタグを指定します。 空の文字列や重複する文字列は使用できません。 |
end |
車両のルートの末尾に適用されるタグを指定します。 空の文字列や重複する文字列は使用できません。 |
start |
車両が出発する可能性がある開始地点の期間。グローバルな時間制限( 同じ繰り返しフィールドに属する時間枠は重複しない必要があります。つまり、時間枠が重なったり、隣接したりすることはできません。また、時間枠は時系列で並べ替える必要があります。
|
end |
車両が最終目的地に到着する可能性のある時間帯。グローバルな時間制限( 同じ繰り返しフィールドに属する時間枠は重複しない必要があります。つまり、時間枠が重なったり、隣接したりすることはできません。また、時間枠は時系列で並べ替える必要があります。
|
unloading |
車両に適用されている荷降ろしに関するポリシー。 |
load |
車両の容量(重量、容積、パレット数など)。マップのキーは、 |
cost |
車両費用: すべての費用を合計し、 車両ルートの 1 時間あたりの費用。この費用は、ルートの所要時間全体に適用されます。所要時間には、移動時間、待ち時間、訪問時間が含まれます。 |
cost |
車両ルートの走行 1 時間あたりの費用。この費用は、ルートでの所要時間( |
cost |
車両ルートの 1 キロメートルあたりの費用。この費用は |
fixed |
この車両が配送の処理に使用された場合に適用される固定費。 |
used |
このフィールドは、ルートに配送が含まれていない車両にのみ適用されます。このケースで車両を中古と見なすべきかどうかを示します。 true の場合、車両は配送サービスを提供していなくても、開始地点から終了地点まで移動し、開始地点から終了地点までの移動に伴う時間と距離の費用が考慮されます。 それ以外の場合は、始点から終点まで移動せず、この車両には |
route |
車両のルートの合計時間に適用される上限。特定の |
travel |
車両のルートの走行時間に適用される上限。特定の |
route |
車両のルートの合計距離に適用される上限。特定の |
extra |
visitTypes 文字列から所要時間へのマップを指定します。所要時間は、指定された 訪問リクエストに複数の種類がある場合は、マップ内の種類ごとに所要時間が追加されます。 |
break |
この車両に適用される休憩スケジュールを記述します。空白の場合、この車両には休憩はスケジュールされません。 |
label |
この車両のラベルを指定します。このラベルは、対応する |
ignore |
true の場合、
|
travel |
この車両の所要時間を増減するために使用できる乗数を指定します。たとえば、この値を 2.0 に設定すると、この車両は標準車両の 2 倍の所要時間で移動することになります。この倍率は、訪問時間には影響しません。 警告: 移動時間は、この倍率が適用された後、数値演算を実行する前に秒単位で切り捨てられます。そのため、倍率が小さいと精度が低下する可能性があります。 下記の |
TravelMode
車両で使用できる移動手段。
これらは、Google Maps Platform Routes Preferred API の移動モードのサブセットである必要があります。https://developers.google.com/maps/documentation/routes_preferred/reference/rest/Shared.Types/RouteTravelMode をご覧ください。
列挙型 | |
---|---|
TRAVEL_MODE_UNSPECIFIED |
移動手段が指定されていません(DRIVING と同等)。 |
DRIVING |
ルート案内に含まれる移動手段(自動車など)。 |
WALKING |
徒歩ルートに該当する移動手段。 |
RouteModifiers
車両ルートの計算時に満たす一連のオプション条件をカプセル化します。これは、Google Maps Platform の Routes Preferred API の RouteModifiers
に似ています。https://developers.google.com/maps/documentation/routes/reference/rest/v2/RouteModifiers をご覧ください。
JSON 表現 |
---|
{ "avoidTolls": boolean, "avoidHighways": boolean, "avoidFerries": boolean, "avoidIndoor": boolean } |
フィールド | |
---|---|
avoid |
合理的な場合は有料道路を避けるかどうかを指定します。有料道路を含まないルートが優先されます。モーター駆動の移動手段にのみ適用されます。 |
avoid |
合理的な場合は高速道路を避けるかどうかを指定します。高速道路を含まないルートが優先されます。モーター駆動の移動手段にのみ適用されます。 |
avoid |
合理的な場合はフェリーを使わないかどうかを指定します。フェリーを利用しないルートの方が優先されます。モーター駆動の移動手段にのみ適用されます。 |
avoid |
省略可。合理的な場合は屋内を避けてルーティングするかどうかを指定します。屋内ナビゲーションのないルートが優先されます。 |
UnloadingPolicy
車両の荷降ろし方法に関するポリシー。集荷と配達の両方がある配送にのみ適用されます。
その他の配送は、unloadingPolicy
に関係なくルートの任意の場所で行うことができます。
列挙型 | |
---|---|
UNLOADING_POLICY_UNSPECIFIED |
荷降ろしに関するポリシーが指定されていません。配送は、対応する集荷の後に行う必要があります。 |
LAST_IN_FIRST_OUT |
配送は集荷の逆順で行う必要があります |
FIRST_IN_FIRST_OUT |
配送は集荷と同じ順序で行う必要があります |
LoadLimit
車両に適用される積載制限を定義します(例: 「このトラックは最大 3, 500 kg まで積載できます」)。loadLimits
をご覧ください。
JSON 表現 |
---|
{ "softMaxLoad": string, "costPerUnitAboveSoftMax": number, "startLoadInterval": { object ( |
フィールド | |
---|---|
soft |
負荷のソフトリミット。 |
cost |
この車両のルートで負荷が |
start |
ルートの開始時点で許容される車両の積載間隔。 |
end |
ルートの終点における車両の許容積載間隔。 |
max |
許容される最大負荷量。 |
間隔
許容される負荷量の範囲。
JSON 表現 |
---|
{ "min": string, "max": string } |
フィールド | |
---|---|
min |
許容される最小負荷。0 以上である必要があります。両方が指定されている場合は、 |
max |
許容できる最大負荷。0 以上である必要があります。指定しない場合、最大負荷はこのメッセージで制限されません。両方が指定されている場合は、 |
DurationLimit
車両のルートの最大時間を定義する上限。ハードまたはソフトのいずれかです。
ソフトリミット フィールドを定義する場合は、ソフトマックスしきい値とそれに関連付けられた費用の両方を一緒に定義する必要があります。
JSON 表現 |
---|
{ "maxDuration": string, "softMaxDuration": string, "quadraticSoftMaxDuration": string, "costPerHourAfterSoftMax": number, "costPerSquareHourAfterQuadraticSoftMax": number } |
フィールド | |
---|---|
max |
期間を maxDuration 以下に制限するハード制限。
|
soft |
ソフトリミットでは最大時間制限は適用されませんが、違反するとルートに費用が発生します。この費用は、モデルで定義された他の費用と合計され、同じ単位になります。 定義する場合、
|
quadratic |
ソフトリミットでは、最大時間制限は適用されませんが、違反すると、ルートに時間の 2 乗に比例する費用が発生します。この費用は、モデルで定義された他の費用と合計され、同じ単位になります。 定義する場合、
|
cost |
費用は正の値にする必要があります。 |
cost |
期間がしきい値未満の場合は追加費用は 0 ですが、それ以外の場合は、次のとおり期間に応じて費用が発生します。
費用は正の値にする必要があります。 |
DistanceLimit
移動可能な最大距離を定義する制限。ハードまたはソフトのいずれかです。
ソフトリミットが定義されている場合、softMaxMeters
と costPerKilometerAboveSoftMax
の両方を定義し、正の値にする必要があります。
JSON 表現 |
---|
{ "maxMeters": string, "softMaxMeters": string, "costPerKilometerBelowSoftMax": number, "costPerKilometerAboveSoftMax": number } |
フィールド | |
---|---|
max |
距離を maxMeters 以下に制限するハードルミット。上限は正の値にする必要があります。 |
soft |
ソフトリミットは最大距離制限を適用しませんが、違反すると、モデルで定義されている他の費用に同じ単位で加算される費用が発生します。 定義する場合、softMaxMeters は maxMeters より小さく、正の値にする必要があります。 |
cost |
発生した 1 キロメートルあたりの費用(
この費用は |
cost |
距離が
費用は正の値にする必要があります。 |
BreakRule
車両の休憩時間(昼休みなど)を生成するルール。休憩とは、車両が現在の位置でアイドル状態のままで、訪問を実行できない連続した期間です。休憩が発生する可能性があるのは、次のとおりです。
- 2 回の訪問間の移動中(訪問の前後を含むが、訪問中は含まない)に発生した場合、その訪問間の移動時間が延長されます。
- または車両の始動前に終了した場合(休憩中に車両が始動しない場合があります)。この場合、車両の始動時間には影響しません。
- または車両の終了後(車両の終了時間も同様)に開始します。
JSON 表現 |
---|
{ "breakRequests": [ { object ( |
フィールド | |
---|---|
break |
休憩の順序。 |
frequency |
複数の |
BreakRequest
各車両に適用される休憩の順序(数と順序)を事前に把握しておく必要があります。繰り返される BreakRequest
は、そのシーケンスを発生させる順序で定義します。時間枠(earliestStartTime
/ latestStartTime
)は重複してもかまいませんが、注文と互換性がある必要があります(この点はチェックされます)。
JSON 表現 |
---|
{ "earliestStartTime": string, "latestStartTime": string, "minDuration": string } |
フィールド | |
---|---|
earliest |
必須。休憩の開始時間の下限(その時間を含む)。 RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: |
latest |
必須。休憩の開始時間の上限(端を含む)。 RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: |
min |
必須。休憩の最小時間。正の値である必要があります。
|
FrequencyConstraint
「12 時間ごとに 1 時間以上の休憩を取る必要がある」など、休憩の最小頻度を適用することで、上記の休憩の頻度と時間をさらに制限できます。これは「12 時間のスライディング タイム ウィンドウ内に、1 時間以上の休憩を 1 回以上設ける必要がある」と解釈できます。この例は、次の FrequencyConstraint
に変換されます。
{
minBreakDuration { seconds: 3600 } # 1 hour.
maxInterBreakDuration { seconds: 39600 } # 11 hours (12 - 1 = 11).
}
ソリューション内の休憩のタイミングと長さは、BreakRequest
ですでに指定されている時間帯と最小時間に加えて、このような制約をすべて考慮します。
FrequencyConstraint
は、連続していない休憩にも適用できます。たとえば、次のスケジュールは「12 時間ごとに 1 時間」の例に従います。
04:00 vehicle start
.. performing travel and visits ..
09:00 1 hour break
10:00 end of the break
.. performing travel and visits ..
12:00 20-min lunch break
12:20 end of the break
.. performing travel and visits ..
21:00 1 hour break
22:00 end of the break
.. performing travel and visits ..
23:59 vehicle end
JSON 表現 |
---|
{ "minBreakDuration": string, "maxInterBreakDuration": string } |
フィールド | |
---|---|
min |
必須。この制約の最小休憩時間。正の値。
|
max |
必須。
|
DurationDistanceMatrix
訪問と車両の出発地から訪問と車両の終点までの所要時間と距離のマトリックスを指定します。
JSON 表現 |
---|
{
"rows": [
{
object ( |
フィールド | |
---|---|
rows[] |
所要時間と距離のマトリックスの行を指定します。 |
vehicle |
この所要時間と距離のマトリックスが適用される車両を定義するタグ。空白の場合は、すべての車両に適用されます。また、マトリックスは 1 つだけ指定できます。 各車両の開始は、1 つの行列と完全に一致する必要があります。つまり、 すべての行列の |
行
所要時間と距離のマトリックスの行を指定します。
JSON 表現 |
---|
{ "durations": [ string ], "meters": [ number ] } |
フィールド | |
---|---|
durations[] |
特定の行の所要時間の値。
|
meters[] |
特定の行の距離値。モデル内の距離を参照する費用や制約がない場合は、空のままにできます。それ以外の場合は、 |
TransitionAttributes
ルート上の 2 つの連続した訪問間の遷移の属性を指定します。同じ遷移に複数の TransitionAttributes
が適用される場合があります。その場合、すべての追加費用が合計され、最も厳しい制約または上限が適用されます(自然な「AND」セマンティクスに従います)。
JSON 表現 |
---|
{
"srcTag": string,
"excludedSrcTag": string,
"dstTag": string,
"excludedDstTag": string,
"cost": number,
"costPerKilometer": number,
"distanceLimit": {
object ( |
フィールド | |
---|---|
src |
これらの属性が適用される(src->dst)遷移のセットを定義するタグ。 ソース訪問または車両の開始が一致するのは、 |
excluded |
|
dst |
目的地の訪問または車両の終了が一致するのは、 |
excluded |
|
cost |
この遷移を実行する費用を指定します。この値は、モデル内の他のすべての費用と同じ単位で指定し、負の値にすることはできません。他の既存の費用に上乗せして適用されます。 |
cost |
この移行中に移動した距離に適用される 1 キロメートルあたりの費用を指定します。車両に指定されている |
distance |
この遷移中に移動する距離の上限を指定します。 2021 年 6 月時点では、ソフトリミットのみがサポートされています。 |
delay |
この遷移の実行時に発生する遅延を指定します。 この遅延は、常に参照元のアクセスが完了した後、リンク先のアクセスが開始される前に発生します。
|
ShipmentTypeIncompatibility
shipmentType に応じて、配送間の非互換性を指定します。互換性のない配送が同じルートに表示されるかどうかは、互換性モードに基づいて制限されます。
JSON 表現 |
---|
{
"types": [
string
],
"incompatibilityMode": enum ( |
フィールド | |
---|---|
types[] |
互換性のないタイプのリスト。リスト内の異なる |
incompatibility |
互換性がない場合に適用されるモード。 |
IncompatibilityMode
同じルートで互換性のない配送の表示を制限する方法を指定するモード。
列挙型 | |
---|---|
INCOMPATIBILITY_MODE_UNSPECIFIED |
未指定の非互換モード。この値は使用しないでください。 |
NOT_PERFORMED_BY_SAME_VEHICLE |
このモードでは、互換性のない 2 つの配送が同じ車両を共有することはできません。 |
NOT_IN_SAME_VEHICLE_SIMULTANEOUSLY |
|
ShipmentTypeRequirement
shipmentType に基づいて、配送間の要件を指定します。要件の詳細は、要件モードによって定義されます。
JSON 表現 |
---|
{
"requiredShipmentTypeAlternatives": [
string
],
"dependentShipmentTypes": [
string
],
"requirementMode": enum ( |
フィールド | |
---|---|
required |
|
dependent |
注: |
requirement |
要件に適用されるモード。 |
RequirementMode
ルート上の依存する配送の表示を定義するモード。
列挙型 | |
---|---|
REQUIREMENT_MODE_UNSPECIFIED |
要件モードが指定されていません。この値は使用しないでください。 |
PERFORMED_BY_SAME_VEHICLE |
このモードでは、すべての「依存」配送は、少なくとも 1 つの「必須」配送と同じ車両を共有する必要があります。 |
IN_SAME_VEHICLE_AT_PICKUP_TIME |
そのため、「依存」する配送の集荷には、次のいずれかが必要です。
|
IN_SAME_VEHICLE_AT_DELIVERY_TIME |
以前と同じですが、「依存」する荷物は配達時に車両に「必須」な荷物が積まれている必要があります。 |
PrecedenceRule
2 つのイベント(各イベントは荷物の集荷または配達)間の優先ルール: 「2 番目」のイベントは、「1 番目」のイベントの開始から少なくとも offsetDuration
後に開始する必要があります。
複数の優先度が同じ(または関連する)イベントを参照できます(例:「B の集荷は A の配達後に行われる」と「C の集荷は B の集荷後に行われる」
また、優先順位は、両方の配送が実行された場合にのみ適用され、それ以外の場合は無視されます。
JSON 表現 |
---|
{ "firstIsDelivery": boolean, "secondIsDelivery": boolean, "offsetDuration": string, "firstIndex": integer, "secondIndex": integer } |
フィールド | |
---|---|
first |
「最初の」イベントが配信かどうかを示します。 |
second |
「2 番目」のイベントが配信かどうかを示します。 |
offset |
「first」イベントと「second」イベントの間のオフセット。負の値にすることもできます。
|
first |
「最初の」イベントの発送インデックス。このフィールドは指定する必要があります。 |
second |
「2 番目」のイベントの発送インデックス。このフィールドは指定する必要があります。 |