- JSON 表現
- 配送
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- VisitRequest
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- LatLng
- ウェイポイント
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- ロケーション
- TimeWindow
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- 自動車
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- TravelMode
- UnloadingPolicy
- LoadLimit
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- 間隔
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- DurationLimit
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- DistanceLimit
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- BreakRule
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- BreakRequest
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- FrequencyConstraint
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- DurationDistanceMatrix
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- 行
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- TransitionAttributes
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- ShipmentTypeIncompatibility
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- IncompatibilityMode
- ShipmentTypeRequirement
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
- RequirementMode
- PrecedenceRule
<ph type="x-smartling-placeholder">
- </ph>
- JSON 表現
出荷モデルには、車両のセットで実施する必要がある一連の出荷が含まれ、次の合計値となる総コストが最小限に抑えられます。
- 車両をルートする費用(合計時間あたりの費用、移動時間あたりの費用、すべての車両の固定費の合計)。
- 未履行配送ペナルティが科されます
- 全世界での配送期間のコスト
JSON 表現 |
---|
{ "shipments": [ { object ( |
フィールド | |
---|---|
shipments[] |
モデルで実行する必要がある一連の配送。 |
vehicles[] |
訪問に使用できる車両のセット。 |
globalStartTime |
モデルのグローバルな開始時刻と終了時刻: この範囲外の時刻は有効とみなされません。 モデルの期間は 1 年未満にする必要があります(例:
RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: |
globalEndTime |
未設定の場合、1971 年 1 月 1 日 00:00:00 UTC(秒: 31536000、nanos: 0)がデフォルトで使用されます。 RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: |
globalDurationCostPerHour |
「グローバル期間」すべての車両の最も早い有効開始時間と最新の有効終了時間の差です。ユーザーは、その数量に 1 時間あたりの費用を割り当てて、たとえば、最も早くジョブが完了するように最適化できます。この費用は |
durationDistanceMatrices[] |
モデルで使用する期間行列と距離行列を指定します。このフィールドが空の場合、 使用例:
|
durationDistanceMatrixSrcTags[] |
期間行列と距離行列のソースを定義するタグ。 タグは |
durationDistanceMatrixDstTags[] |
期間行列と距離行列のデスティネーションを定義するタグ。 タグは |
transitionAttributes[] |
モデルに追加された遷移属性。 |
shipmentTypeIncompatibilities[] |
互換性のない shipping_types のセット( |
shipmentTypeRequirements[] |
|
precedenceRules[] |
モデルに適用する必要がある一連の優先順位ルール。 |
maxActiveVehicles |
アクティブな車両の最大数を制限します。ルートで少なくとも 1 回の配送が行われる車両はアクティブです。これは、ドライバーの数が車両より少ない場合や、車両フリートが混在している場合に、ルートの数を制限するために使用できます。最適化により、使用する最適な車両のサブセットが選択されます。真に正である必要があります。 |
配送
1 つの商品の配送(集荷から配送まで)。配送済みと見なされるには、車両がいずれかの集荷場所を訪問し(それに応じて予備容量を減らしてから)、後でいずれかの配達場所を訪問する必要があります(そのため、それに応じて予備容量を再度増やす必要があります)。
JSON 表現 |
---|
{ "displayName": string, "pickups": [ { object ( |
フィールド | |
---|---|
displayName |
配送のユーザー定義の表示名。長さは 63 文字以下で、UTF-8 文字を使用できます。 |
pickups[] |
配送に関連付けられている受け取りの代替手段のセット。指定されていない場合、車両は配達に対応する場所を訪問するだけで済みます。 |
deliveries[] |
配送に関連付けられた配送方法のセット。指定されていない場合、車両は乗車に対応する場所を訪問するだけで済みます。 |
loadDemands |
荷物の積荷需要(重量、体積、パレット数など)。マップ内のキーは、対応する負荷のタイプを示す識別子である必要があります。また、単位も含めることが理想的です。例: 「weight_kg」、「volume_gallons」、「pallet_count」など。指定されたキーがマップにない場合、対応する負荷は null と見なされます。
|
allowedVehicleIndices[] |
この配送が可能な車両のセット。空の場合、すべての車両で実行できます。車両は、 |
costsPerVehicle[] |
この配送が各車両で配達されたときに発生する費用を指定します。指定する場合は、次のいずれかが必要です。
これらの費用は |
costsPerVehicleIndices[] |
|
pickupToDeliveryAbsoluteDetourLimit |
受け取りから配達までの最短経路と比較して、最大絶対迂回時間を指定します。指定する場合は負の値を指定してください。配送には少なくとも受け取りと宅配の 1 つが含まれている必要があります。 たとえば、選択した受け取り方法から別の配送方法に直接移動する最短の所要時間を t とします。
同じ配送に相対的制限と絶対的制限の両方が指定されている場合は、受け取りと配達の組み合わせごとに、より制限の厳しい制限が適用されます。2017 ~ 2010 年現在、迂回運転は、移動時間が車両に依存しない場合にのみサポートされます。
|
pickupToDeliveryTimeLimit |
荷物の集荷から配達を開始するまでの最長期間を指定します。指定する場合は負の値を指定してください。配送には少なくとも受け取りと宅配の 1 つが含まれている必要があります。これは、受け取りと配達のためにどの代替手段を選択するか、車両の速度に依存しません。これは、最大迂回の制約とともに指定することができます。ソリューションは両方の仕様を遵守します。
|
shipmentType |
「タイプ」を指定する空でない文字列。この機能を使用すると、 1 回の訪問に指定された |
label |
この配送のラベルを指定します。このラベルは、対応する |
ignore |
true の場合、この配送はスキップしますが、 モデルに
|
penaltyCost |
配送が完了していない場合、このペナルティがルートの総費用に追加されます。集荷と配達の代替手段のいずれかを訪問した場合、配送は完了とみなされます。費用は、モデル内の費用関連フィールドのその他すべてのために使用される同じ単位で表すことができ、正の値である必要があります。 重要: このペナルティが指定されていない場合は、ペナルティは無限(配送の完了が必要)とみなされます。 |
pickupToDeliveryRelativeDetourLimit |
集荷から配達までの最短経路と比較して、最大の相対的迂回時間を指定します。指定する場合は負の値を指定してください。配送には少なくとも受け取りと宅配の 1 つが含まれている必要があります。 たとえば、選択した受け取り方法から別の配送方法に直接移動する最短の所要時間を t とします。
同じ配送に相対的制限と絶対的制限の両方が指定されている場合は、受け取りと配達の組み合わせごとに、より制限の厳しい制限が適用されます。2017 ~ 2010 年現在、迂回運転は、移動時間が車両に依存しない場合にのみサポートされます。 |
VisitRequest
車両で可能な訪問のリクエスト: 位置情報(下記参照、2 つ)、時間枠で表される開店時間と閉店時間、サービス提供期間(車両が荷物の集荷または降車に到着した後の車両が費やした時間)があります。
JSON 表現 |
---|
{ "arrivalLocation": { object ( |
フィールド | |
---|---|
arrivalLocation |
この |
arrivalWaypoint |
この |
departureLocation |
この |
departureWaypoint |
この |
tags[] |
訪問リクエストに添付するタグを指定します。空の文字列や重複する文字列は使用できません。 |
timeWindows[] |
訪問時の到着時間を制限する時間枠。車両は到着時間の範囲外に出発する可能性があります。つまり、到着時間と到着時間が時間枠の範囲内である必要はありません。車両が
時間枠は互いに独立している必要があります。つまり、時間枠が他の時間枠と重なったり隣接したりしてはいけません。また、時間枠は昇順である必要があります。
|
duration |
訪問時間。つまり、到着から出発までに車両が費やした時間(予想待ち時間に加算されます。
|
cost |
車両ルートでのこの訪問リクエストの処理にかかる費用。荷物の受け取りまたは配送ごとに、異なる送料を支払うために使用できます。この費用は |
loadDemands |
この訪問リクエストのロード デマンド。これは、
|
visitTypes[] |
訪問のタイプを指定します。これは、車両がこの訪問を完了するために必要な追加の時間を割り当てるために使用されることがあります( タイプは 1 回しか使用できません。 |
label |
この |
LatLng
緯度と経度のペアを表すオブジェクト。これは緯度を表す倍精度値と経度を表す倍精度値のペアで表現されます。特に明記されていない限り、このオブジェクトは WGS84 規格に準拠する必要があります。値は正規化範囲内で指定する必要があります。
JSON 表現 |
---|
{ "latitude": number, "longitude": number } |
フィールド | |
---|---|
latitude |
緯度(度単位)。範囲 [-90.0, +90.0] 内になければなりません。 |
longitude |
経度(度単位)。範囲 [-180.0, +180.0] 内になければなりません。 |
ウェイポイント
地点をカプセル化します。ウェイポイントは、VisitRequests の到着位置と出発位置、車両の開始位置と終了位置をマークします。
JSON 表現 |
---|
{ "sideOfRoad": boolean, // Union field |
フィールド | |
---|---|
sideOfRoad |
省略可。車両が道路の特定の側に停車することを優先して、このウェイポイントの位置を指定します。この値を設定すると、ルートは位置を通過するため、車両は、位置が道路の中心よりも偏っている道路脇で停止できるようになります。「WALKING」ではこのオプションは使用できません。選択します |
共用体フィールド 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 キロメートルあたりの費用。この費用は、 |
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[] |
特定の行の Duration 値。
|
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 キロメートルあたりの費用を指定します。車両で指定された |
distanceLimit |
この遷移中の移動距離の上限を指定します。 2021 年 6 月現在、ソフトリミットのみがサポートされています。 |
delay |
この移行の際に発生する遅延を指定します。 この遅延は常に、参照元の訪問が終了してから、訪問先の訪問を開始する前に発生します。
|
ShipmentTypeIncompatibility
配送の種類に応じて、配送間の互換性がないことを示します。互換性のない配送が同じルート上に表示されるかどうかは、非互換モードに基づいて制限されます。
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 |
以前と同じですが、「依存関係」配送には「required」を配達時に車両に配送します。 |
PrecedenceRule
2 つのイベント(各イベントは集荷または配送)間の優先順位ルール: 「2 番目」イベントは、「最初」の後に少なくとも offsetDuration
後に開始する必要があります開始しました。
いくつかの優先順位は、同じ(または関連する)イベントを指すことができます。「B の集荷は A の配送後に行われます」「B の集荷後に C の集荷が行われる」などです。
また、優先順位は両方の発送が行われた場合にのみ適用され、それ以外の場合は無視されます。
JSON 表現 |
---|
{ "firstIsDelivery": boolean, "secondIsDelivery": boolean, "offsetDuration": string, "firstIndex": integer, "secondIndex": integer } |
フィールド | |
---|---|
firstIsDelivery |
最初の Pod が配送イベントです。 |
secondIsDelivery |
「秒」が配送イベントです。 |
offsetDuration |
「最初の」位置とと「second」イベントです。負の値も使用できます。
|
firstIndex |
「first」の配送指数イベントです。このフィールドを指定する必要があります。 |
secondIndex |
「2 個目」の配送指数イベントです。このフィールドを指定する必要があります。 |