- JSON 表現
- 配送
- VisitRequest
- LatLng
- 地点
- ロケーション
- TimeWindow
- 車両
- TravelMode
- UnloadingPolicy
- LoadLimit
- 間隔
- DurationLimit
- DistanceLimit
- BreakRule
- BreakRequest
- FrequencyConstraint
- DurationDistanceMatrix
- 行
- TransitionAttributes
- ShipmentTypeIncompatibility
- IncompatibilityMode
- ShipmentTypeRequirement
- RequirementMode
- PrecedenceRule
配送モデルには、一連の車両で実行する必要がある一連の配送が含まれ、費用全体を最小限に抑えることができます。合計コストは次のとおりです。
- 車両の手配にかかる費用(総時間あたりの費用、移動時間あたりの費用、すべての車両の固定費用の合計)。
- 不履行に対するペナルティが減ります
- 世界全体での出荷期間にかかる費用
JSON 表現 |
---|
{ "shipments": [ { object ( |
フィールド | |
---|---|
shipments[] |
モデルで実行する必要がある出荷のセット。 |
vehicles[] |
訪問に使用できる車両のセット。 |
globalStartTime |
モデルのグローバルな開始時刻と終了時刻: この範囲外の時刻は有効とみなされません。 モデルの期間は 1 年未満にする必要があります。つまり、
RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: |
globalEndTime |
設定しない場合、1971 年 1 月 1 日 00:00:00 UTC(秒: 31536000、ナノ: 0)がデフォルトで使用されます。 RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: |
globalDurationCostPerHour |
計画全体の「グローバルな期間」は、全車両の最も早い有効開始時刻と最も遅い有効終了時刻の差です。その数量に 1 時間あたりの費用を割り当てて、ジョブ完了が最も早く完了するなど最適化を試みることができます。この費用には |
durationDistanceMatrices[] |
モデルで使用する期間と距離の行列を指定します。このフィールドが空の場合は、 使用例:
|
durationDistanceMatrixSrcTags[] |
所要時間と距離行列のソースを定義するタグ。 タグは |
durationDistanceMatrixDstTags[] |
所要時間行列と距離行列の目的地を定義するタグ。 タグは |
transitionAttributes[] |
モデルに追加された遷移属性。 |
shipmentTypeIncompatibilities[] |
互換性のない shipping_types のセット( |
shipmentTypeRequirements[] |
|
precedenceRules[] |
モデルで適用する必要がある一連の優先順位ルール。 |
maxActiveVehicles |
有効な車両の最大数を制限します。ルートで配送が 1 回以上行われると、車両はアクティブになります。これは、車両よりドライバーが少なく、車両フリートが異種混合である場合に、ルート数を制限するために使用できます。次に、最適化によって、使用に最適な車両のサブセットが選択されます。真に正である必要があります。 |
配送
単一の商品の配送(集荷 1 つから配送 1 つまで)。配送が完了したと見なされるには、一意の車両がいずれかの乗車拠点を訪問し(それに応じて予備のキャパシティを減らし)、後でいずれかの配送拠点を訪問する必要があります(それに応じて予備キャパシティを増やします)。
JSON 表現 |
---|
{ "displayName": string, "pickups": [ { object ( |
フィールド | |
---|---|
displayName |
配送のユーザー定義の表示名。最大 63 文字で、UTF-8 文字を使用できます。 |
pickups[] |
配送に関連付けられた受け取り方法のセット。指定しない場合、車両は配送に対応する場所に訪問するだけです。 |
deliveries[] |
配送に関連付けられた代替の配送方法のセット。指定しなかった場合、車両は乗車場所に対応する場所に訪問するだけで済みます。 |
loadDemands |
荷物の積載量(重量、容積、パレット数など)マップ内のキーは、対応する負荷のタイプを説明する識別子である必要があります。理想的には、その単位も含める必要があります。たとえば、「weight_kg」、「volume_gallons」、「pallet_count」などです。特定のキーがマップにない場合、対応する負荷は null と見なされます。
|
allowedVehicleIndices[] |
この配送を実行できる車両のセット。空の場合、すべての車両が実行できます。車両は、 |
costsPerVehicle[] |
この荷物が各車両で配送されたときに発生する費用を指定します。指定する場合、EITHER:
これらの費用は |
costsPerVehicleIndices[] |
|
pickupToDeliveryAbsoluteDetourLimit |
集荷から配達までの最短経路と比較して、最長の迂回時間を指定します。指定する場合、値は負の値にせず、少なくとも集荷と配達が含まれている必要があります。 たとえば、選択された代替受け取り場所から、選択された配送方法に直接到達するまでに要する最短時間を t とします。次に、
同じ配送に相対制限と絶対制限の両方が指定されている場合は、受け取りと配達の組み合わせごとに、より厳しい制限が適用されます。2017 年と 2010 年現在、迂回ルートは走行時間が車両に依存していない場合にのみサポートされます。 「 |
pickupToDeliveryTimeLimit |
荷物の集荷から配達を開始するまでの最大期間を指定します。指定する場合、値は負の値にせず、少なくとも集荷と配達が含まれている必要があります。これは、受け取りと宅配の選択肢、車両速度には左右されません。これは、最大迂回の制約と並行して指定できます。ソリューションは両方の仕様を尊重します。 「 |
shipmentType |
この配送の「タイプ」を指定する空でない文字列。この機能を使用して、 1 回の訪問に指定される |
label |
この配送のラベルを指定します。このラベルは、対応する |
ignore |
true の場合、この配送をスキップしますが、 配送を無視すると、モデルに
|
penaltyCost |
配送が完了しない場合は、このペナルティがルートの総費用に加算されます。受け取りまたは宅配の代替便のいずれかを訪問した場合、配送が完了したとみなされます。費用は、モデルの他のすべての費用関連フィールドに使用されるのと同じ単位で表すことができます。また、正の値にする必要があります。 重要: このペナルティが指定されていない場合、ペナルティは無限であると見なされます(配送を完了する必要がある)。 |
pickupToDeliveryRelativeDetourLimit |
集荷から配達までの最短経路と比較した、最長の相対迂回時間を指定します。指定する場合、値は負の値にせず、少なくとも集荷と配達が含まれている必要があります。 たとえば、選択された代替受け取り場所から、選択された配送方法に直接到達するまでに要する最短時間を t とします。次に、
同じ配送に相対制限と絶対制限の両方が指定されている場合は、受け取りと配達の組み合わせごとに、より厳しい制限が適用されます。2017 年と 2010 年現在、迂回ルートは走行時間が車両に依存していない場合にのみサポートされます。 |
VisitRequest
車両による訪問のリクエスト: 位置情報(1 つまたは 2 つ、以下を参照)、時間枠で表される開店時間と閉店時間、サービス提供時間(車両が荷物を受け取るか降車してから到着してから費やした時間)が含まれています。
JSON 表現 |
---|
{ "arrivalLocation": { object ( |
フィールド | |
---|---|
arrivalLocation |
この |
arrivalWaypoint |
この |
departureLocation |
この |
departureWaypoint |
この |
tags[] |
アクセス リクエストに付加するタグを指定します。空の文字列や重複する文字列は使用できません。 |
timeWindows[] |
訪問時の到着時刻を制限する時間枠。車両は到着時間枠外に出発してもよいことに注意してください。つまり、到着時刻 + 所要時間が時間枠内である必要はありません。
時間枠は互いに独立している必要があります。つまり、時間枠が互いに重なり合ったり隣接したりしてはならず、順に並べる必要があります。
|
duration |
訪問の所要時間、つまり到着から出発までに車両が費やした時間(待ち時間に加算されます。 「 |
cost |
車両ルートでこの訪問リクエストを処理するための費用。これを使用して、荷物の別の受け取りまたは配送ごとに異なる費用を支払うことができます。この費用は |
loadDemands |
この訪問リクエストのロード デマンド。これは
|
visitTypes[] |
訪問のタイプを指定します。車両がこの訪問を完了するために必要な追加の時間を割り当てるために使用されることがあります( 1 つのタイプは 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 |
フィールド | |
---|---|
sideOfRoad |
省略可。このウェイポイントの位置が、車両が道路の特定の側に停止することを優先することを示します。この値を設定すると、ルートはその場所を通過するため、車両はその場所が道路の中心から方向に偏った道路脇に停車します。このオプションは移動モードで「歩行中」にすることはできません。 |
共用体フィールド location_type 。場所を表すさまざまな方法。location_type は次のいずれかになります。 |
|
location |
地理座標を使用して指定されたポイント。オプションで方角が含まれます。 |
placeId |
ウェイポイントに関連付けられているスポットのプレイス ID。 |
ロケーション
場所(地理的位置と任意の方角)をカプセル化します。
JSON 表現 |
---|
{
"latLng": {
object ( |
フィールド | |
---|---|
latLng |
ウェイポイントの地理座標。 |
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` <= `softStartTime` <= `endTime` and
0 <= `startTime` <= `softEndTime` <= `endTime`.
JSON 表現 |
---|
{ "startTime": string, "endTime": string, "softStartTime": string, "softEndTime": string, "costPerHourBeforeSoftStartTime": number, "costPerHourAfterSoftEndTime": number } |
フィールド | |
---|---|
startTime |
ハードタイムの開始時刻。指定しない場合は、 RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: |
endTime |
ハードタイムの終了時間。指定しない場合は、 RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: |
softStartTime |
時間枠のソフトスタート時間。 RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: |
softEndTime |
時間枠のソフト エンド時間。 RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: |
costPerHourBeforeSoftStartTime |
イベントが softStartTime の前に発生した場合に、モデルの他の費用に 1 時間あたりの費用を加えたもの。以下のように計算されます。
この費用には正の値を指定する必要があります。また、このフィールドは softStartTime が設定されている場合にのみ設定できます。 |
costPerHourAfterSoftEndTime |
イベントが
この費用は正の値で指定する必要があります。このフィールドは、 |
車両
配送の問題に含まれる車両をモデル化します。配送の問題を解決すると、この車両の startLocation
から endLocation
までのルートが作成されます。ルートとは、一連の訪問履歴です(ShipmentRoute
を参照)。
JSON 表現 |
---|
{ "displayName": string, "travelMode": enum ( |
フィールド | |
---|---|
displayName |
車両のユーザー定義の表示名。最大 63 文字で、UTF-8 文字を使用できます。 |
travelMode |
車両が使用できる道路と速度に影響する移動モード。 |
startLocation |
荷物を受け取る前に車両が始動する地理的な場所。指定しない場合、車両は最初の乗車地点から開始します。配送モデルに所要時間と距離の行列がある場合、 |
startWaypoint |
配送物を受け取る前に車両が始動する地理的位置を表す地点。 |
endLocation |
最後の |
endWaypoint |
車両が最後の |
startTags[] |
車両のルートの始点に付けるタグを指定します。 空の文字列や重複する文字列は使用できません。 |
endTags[] |
車両のルートの終点に付けられたタグを指定します。 空の文字列や重複する文字列は使用できません。 |
startTimeWindows[] |
車両が開始位置を出発できる時間帯。グローバルの制限時間内である必要があります( 同じ繰り返しフィールドに属する時間枠は、互いに素である必要があります。つまり、時間枠が別の時間枠と重複したり、隣接したりしてはいけません。また、時系列である必要があります。
|
endTimeWindows[] |
車両が最終位置に到着する可能性のある時間枠。グローバルの制限時間内である必要があります( 同じ繰り返しフィールドに属する時間枠は、互いに素である必要があります。つまり、時間枠が別の時間枠と重複したり、隣接したりしてはいけません。また、時系列である必要があります。
|
unloadingPolicy |
車両にアンロード ポリシーが適用されています。 |
loadLimits |
車両の容量(重量、容積、パレット数など)。マップ内のキーは、
|
costPerHour |
車両費用: すべての費用が合計され、 車両ルートの 1 時間あたりの費用。この費用は、ルートの所要時間、移動時間、待ち時間、訪問時間に適用されます。 |
costPerTraveledHour |
車両ルートの走行時間あたりの費用。この費用は、そのルートの移動時間( |
costPerKilometer |
車両ルートの 1 km あたりの料金。この費用は、 |
fixedCost |
この車両を使用して出荷する場合、固定料金が適用されます。 |
usedIfRouteIsEmpty |
この項目は、ルートで配送を行う車両がない場合にのみ適用されます。そのケースで車両を中古車とみなすかどうかを示します。 true の場合、車両は荷物のサービスを提供していなくても、始点から終点まで移動し、始点から終点への移動に要する時間と距離の費用が考慮されます。 それ以外の場合、この車両は始点から終点まで移動せず、 |
routeDurationLimit |
車両のルートの総所要時間に適用される制限。特定の |
travelDurationLimit |
車両のルートの走行時間に適用される制限。特定の |
routeDistanceLimit |
車両のルートの総距離に適用される制限。特定の |
extraVisitDurationForVisitType |
visitTypes 文字列から期間までのマップを指定します。所要時間は、 訪問リクエストのタイプが複数ある場合は、地図のタイプごとに所要時間が追加されます。
|
breakRule |
この車両に適用される休憩スケジュールを記述します。空の場合、この車両に休憩は設定されません。 |
label |
この車両のラベルを指定します。このラベルは、対応する |
ignore |
true の場合、
|
travelDurationMultiple |
この車両の移動時間を増減するために使用できる乗法係数を指定します。たとえば、この値を 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 |
徒歩ルートに対応する移動手段。 |
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 ( |
フィールド | |
---|---|
softMaxLoad |
負荷のソフトリミット。 |
costPerUnitAboveSoftMax |
この車両の経路で負荷が |
startLoadInterval |
ルート開始時の車両の許容積載間隔。 |
endLoadInterval |
ルートの終点における車両の許容積載間隔。 |
maxLoad |
最大許容負荷量。 |
間隔
許容される読み込み量の間隔。
JSON 表現 |
---|
{ "min": string, "max": string } |
フィールド | |
---|---|
min |
|
max |
最大許容負荷。0 以上の値を指定してください。指定しない場合、このメッセージによる最大負荷の制限はありません。両方指定する場合、 |
DurationLimit
車両のルートの最大継続時間を定義する制限。ハードとソフトのどちらでも構いません。
ソフトリミット フィールドが定義されている場合は、ソフト最大しきい値とそれに関連するコストの両方を一緒に定義する必要があります。
JSON 表現 |
---|
{ "maxDuration": string, "softMaxDuration": string, "quadraticSoftMaxDuration": string, "costPerHourAfterSoftMax": number, "costPerSquareHourAfterQuadraticSoftMax": number } |
フィールド | |
---|---|
maxDuration |
再生時間が maxDuration 以下になるように制限するハードリミット。 「 |
softMaxDuration |
ソフトリミットは、最大時間制限を適用しませんが、違反するとコストが発生します。この費用が、モデルで定義された他の費用(同じ単位)に加算されます。 定義する場合、 「 |
quadraticSoftMaxDuration |
ソフトリミットは、最大継続時間制限を適用しませんが、違反すると、ルートの所要時間に二次的なコストが発生します。この費用が、モデルで定義された他の費用(同じ単位)に加算されます。 定義する場合、
「 |
costPerHourAfterSoftMax |
費用には負でない値を指定してください。 |
costPerSquareHourAfterQuadraticSoftMax |
期間がしきい値を下回っている場合、追加費用は 0 になります。そうでない場合、費用は期間に応じて次のように異なります。
費用には負でない値を指定してください。 |
DistanceLimit
移動可能な最大距離を定義する制限。ハードとソフトのどちらでも構いません。
ソフトリミットを定義する場合は、softMaxMeters
と costPerKilometerAboveSoftMax
の両方を定義し、負でない値にする必要があります。
JSON 表現 |
---|
{ "maxMeters": string, "softMaxMeters": string, "costPerKilometerAboveSoftMax": number } |
フィールド | |
---|---|
maxMeters |
距離を maxMeters 以下に制限するハードリミット。上限には負でない値を指定してください。 |
softMaxMeters |
ソフトリミットは、最大距離制限を適用しませんが、違反するとコストが発生します。このコストは、同じ単位を使用してモデルで定義された他のコストになります。 定義されている場合、softMaxMeters は maxMeters より小さく、かつ非負でなければなりません。 |
costPerKilometerAboveSoftMax |
距離が上限の
費用には負でない値を指定してください。 |
BreakRule
車両の休憩(昼食など)を生成するためのルール。休憩とは、車両が現在の位置でアイドル状態のままで、訪問できない連続時間です。休憩が起きる場合があります。
- 2 回の訪問間の移動中(訪問の直前と直後の時間を含むが、訪問の途中は含まない)の場合は、訪問間の移動時間が延長されます。
- または車両の始動前(車両が休憩の途中で始動しない場合があります)は、車両の開始時間には影響しません。
- または車両の終了時刻の後(同上、車両の終了時刻も指定)。
JSON 表現 |
---|
{ "breakRequests": [ { object ( |
フィールド | |
---|---|
breakRequests[] |
休憩の順序。 |
frequencyConstraints[] |
複数の |
BreakRequest
各車両に適用される一連の挿入点(回数と順序)を事前に把握しておく必要があります。繰り返される BreakRequest
は、その順序が発生する順序を定義します。時間枠(earliestStartTime
/ latestStartTime
)は重複する場合がありますが、オーダーと互換性がなければなりません(確認済み)。
JSON 表現 |
---|
{ "earliestStartTime": string, "latestStartTime": string, "minDuration": string } |
フィールド | |
---|---|
earliestStartTime |
必須。広告ブレークの開始時の下限(指定した値を含む)。 RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: |
latestStartTime |
必須。広告ブレークの開始時の上限(指定した値を含む)。 RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: |
minDuration |
必須。休憩の最小時間。正の値である必要があります。 「 |
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 } |
フィールド | |
---|---|
minBreakDuration |
必須。この制約の最小ブレーク時間。非負。 「 |
maxInterBreakDuration |
必須。 「 |
DurationDistanceMatrix
訪問と車両の開始位置から訪問までの所要時間と距離の行列、および車両の終了位置を指定します。
JSON 表現 |
---|
{
"rows": [
{
object ( |
フィールド | |
---|---|
rows[] |
所要時間と距離のマトリックスの行を指定します。 |
vehicleStartTag |
この所要時間と距離の行列が適用される車両を定義するタグ。空の場合はすべての車両に適用され、指定できる行列は 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 ( |
フィールド | |
---|---|
srcTag |
これらの属性が適用される一連の(src->dst)遷移を定義するタグ。 参照元の訪問または車両の開始は、その |
excludedSrcTag |
|
dstTag |
|
excludedDstTag |
|
cost |
この移行の実行にかかる費用を指定します。これは、モデルの他のすべての費用と同じ単位であり、負の値にすることはできません。この料金は、他のすべての既存の費用の上に適用されます。 |
costPerKilometer |
この移行中の移動距離に適用される 1 km あたりの料金を指定します。車両で指定された |
distanceLimit |
このトランジションの移動距離の上限を指定します。 2021 年 6 月現在、ソフトリミットのみがサポートされています。 |
delay |
この移行の実行時に発生する遅延を指定します。 この遅延は常に、ソース訪問を終了した後、かつリンク先訪問を開始する前に発生します。 「 |
ShipmentTypeIncompatibility
shippingType に応じて配送間の非互換性を指定します。同一ルート上で互換性のない配送が表示されるかどうかは、非互換性モードに基づいて制限されます。
JSON 表現 |
---|
{
"types": [
string
],
"incompatibilityMode": enum ( |
フィールド | |
---|---|
types[] |
互換性のないタイプのリスト。上記のうち |
incompatibilityMode |
非互換性に適用されるモード。 |
IncompatibilityMode
同じルート上で互換性のない荷物の表示を制限するモード。
列挙型 | |
---|---|
INCOMPATIBILITY_MODE_UNSPECIFIED |
未指定の非互換モード。この値は使用しないでください。 |
NOT_PERFORMED_BY_SAME_VEHICLE |
このモードでは、互換性のないタイプの 2 つの配送で同じ車両を共有することはできません。 |
NOT_IN_SAME_VEHICLE_SIMULTANEOUSLY |
|
ShipmentTypeRequirement
shippingType に基づいて配送間の要件を指定します。要件の具体的な内容は、要件モードによって定義されます。
JSON 表現 |
---|
{
"requiredShipmentTypeAlternatives": [
string
],
"dependentShipmentTypes": [
string
],
"requirementMode": enum ( |
フィールド | |
---|---|
requiredShipmentTypeAlternatives[] |
|
dependentShipmentTypes[] |
注: |
requirementMode |
要件に適用されたモード。 |
RequirementMode
ルート上での従属配送の外観を定義するモード。
列挙型 | |
---|---|
REQUIREMENT_MODE_UNSPECIFIED |
未指定の要件モード。この値は使用しないでください。 |
PERFORMED_BY_SAME_VEHICLE |
このモードでは、「依存する」すべての配送で、少なくとも 1 つの「必須」の配送と同じ車両を共有する必要があります。 |
IN_SAME_VEHICLE_AT_PICKUP_TIME |
そのため、「従属」の荷物の集荷には次のいずれかが必要です。
|
IN_SAME_VEHICLE_AT_DELIVERY_TIME |
前と同じですが、「従属」の荷物は配達時に車両に「必須」の荷物が設定されている必要がある点が異なります。 |
PrecedenceRule
2 つのイベント間の優先順位ルール(各イベントは荷物の集荷または配達): 「1 回目」の開始後、少なくとも offsetDuration
後に「2 回目の」イベントが開始される必要があります。
同じ(または関連する)イベントを指す優先順位が複数あります(例:「B の集荷は A の配送後に行われます」と「C の集荷は B の集荷後に行われます」。
また、優先順位は、両方の発送が行われた場合にのみ適用され、それ以外の場合は無視されます。
JSON 表現 |
---|
{ "firstIsDelivery": boolean, "secondIsDelivery": boolean, "offsetDuration": string, "firstIndex": integer, "secondIndex": integer } |
フィールド | |
---|---|
firstIsDelivery |
「最初」のイベントが配信かどうかを示します。 |
secondIsDelivery |
「2 回目」のイベントが配信かどうかを示します。 |
offsetDuration |
「first」イベントと「second イベント」の間のオフセット。負の値でもかまいません。 「 |
firstIndex |
「最初」のイベントの配送インデックス。このフィールドを指定する必要があります。 |
secondIndex |
「2 回目の」イベントの配送インデックス。このフィールドを指定する必要があります。 |