車両サービス時間 (Vehicle Service Time)
ノードの service_time は、その停車地での作業にかかる時間を表します。ただし、作業時間は停車地だけでなく車両によっても変わることがあります。たとえば、大型トラックはバンよりも駐車や荷台の開放に時間がかかり、テールリフトのない車両は荷降ろしに時間がかかります。車両サービス時間は、その車両がノードを担当するたびに、各ノード自身の service_time に車両ごとの時間を加算する機能です。
2つの要素 (Two components)
車両に service_time を設定します。どちらの要素も任意で、組み合わせて使用できます。
| フィールド | 加算されるタイミング | 用途 |
|---|---|---|
additive_per_node | 車両が担当するすべてのノード | 注文ごとに繰り返される作業(1件分の荷降ろしなど) |
additive_per_location | 車両が訪問する地点ごとに1回 | 停車ごとに1回だけ行う作業(駐車、荷室の開放など) |
additive_per_location では、同じ座標で連続するノードは1つの地点として扱われ、車両が次の地点へ移動する前の最後のノードに時間が加算されます。
各要素には次のいずれかを指定します。
- 秒数を表す数値:すべてのノードに適用されます。
pickupとdropoffを個別に指定するオブジェクト:ピックアップノードとドロップオフノードのみが対象です。省略したキーやnullのキーは何も加算しません。
値は 0 以上である必要があります。その他のキーは受け付けられません。
"service_time": {
"additive_per_node": 60,
"additive_per_location": { "pickup": 300, "dropoff": 120 }
}
この設定の車両が同じ住所に3件の注文を配達する場合、各注文自身の service_time に加えて、注文ごとに 60 秒、さらにその住所に対して 1 回だけ 120 秒が加算されます。
Stateless API
リクエスト内の各車両に service_time を設定します。additive_per_node の数値形式は、ウェイポイントを含むデポ以外のすべてのノードに適用されます。デポノードには additive_per_location も加算されま せん。
複数の注文を1つのノードにまとめる場合は、そのノードの additive_per_node_vehicle_service_time_multiplier にまとめた注文数を設定してください。これにより、additive_per_node がまとめたノード単位ではなく注文単位で加算されます。スキーマの詳細は Stateless API リファレンス を参照してください。
Integration API
service_time は 車両 と 車両タイプ の両方のフィールドで、デフォルトは null です。
- 継承:
vehicle_typeを指定し、自身のservice_timeを設定せずに作成した車両は、作成時に車両タイプの値を引き継ぎます。作成後に車両タイプを変更しても、既存の車両は更新されません。 - 一括タスク:車両の一括アップロードは
service_timeを受け付けますが、車両の一括更新は受け付けません。 - 適用範囲:車両とともに最適化エンジンへ送信されるほか、手動編集でルートを再スケジュールする際にも適用されます。グループ化された注文を1つのノードとして送信する場合、SWAT が乗数をグループのサイズに自動で設定します。
- 結果:各ノードには、車両サービス時間を含めて実際にスケジュールされたサービス時間が、読み取り専用の
scheduled_service_timeに保存されます。ノードの割り当てが解除されるとnullに戻ります。
POST /api/v2/microservices/calculate_scheduled_ts は、車両の設定を vehicle_service_time として受け取り、各ノードについて算出された estimated_service_time を返します。このエンドポイントでは、additive_per_node の数値形式は送信したシーケンス内のすべてのノードに適用されます。
関連項目 (Related)
- 動的サービス時間:注文の需要量に応じたサービス時間。
- 固定ロケーションサービス時間:地点に設定し、地点ごとに1回加算されるサービス時間。