ドライバーのスケジュールを使ってルートを計算する
driver[schedule]パラメーターは、ドライバーがスケジュールされた休憩を取る必要があるルートを計算するのに役立ちます。
パラメーター値は、最大許容運転時間と休憩時間を交互に指定する所要時間 (秒単位) のカンマ区切りリストです。
ドライバーが 4.5 時間運転し、その後 30 分間休憩し、その後さらに 4.5 時間運転して、さらに 11 時間休憩するルートを予定しているとします。
このようなシーケンスは driver[schedule]=16200,1800,16200,39600 としてエンコードされます。
所要時間は 0 より大きい正の整数になります。
ドライバーが出発する前に出発地点で休憩時間を追加する場合は、必要な休憩時間を出発時間の値に追加します。
これにより、目的のルートが提示されます。休憩時間に0を指定することはできません。
上記の例では、ルートは少なくとも2つのセクションに分割され、それぞれの走行時間は16200秒近くになります。
各セクションには、休憩時間と等しい所要時間のwaitポストアクションがあります (それぞれ1800と39600)。
{
"postActions": [
{
"action": "wait",
"duration": 1800
}
]
}ルートの移動時間がスケジュール内の合計運転時間を超える場合、スケジュールされた運転時間の後のセクション (ルート計画にvia個の経由地がある場合は複数のセクション) が、waitのアクションなしで追加されますが、通知travelTimeExceedsDriverWorkHoursが含まれます。
リクエストとレスポンスの例。ルートはスケジュールに従って分割されます。
curl -gX GET 'https://router.hereapi.com/v8/routes?'\
'origin=37.409438,-6.043584&'\
'destination=43.574211,1.424529&'\
'return=polyline,summary,actions,instructions&'\
'transportMode=truck&'\
'driver[schedule]=16200,1800,16200,39600&'\
'apiKey=YOUR_API_KEY'{
"routes": [
{
"id": "7b316838-eaba-49b7-9419-ddce4c97162a",
"sections": [
{
...,
"id": "99b4e3f6-cdd9-4e52-a4ed-3f15423a8fba",
"postActions": [
{
"action": "wait",
"duration": 900
}
],
"summary": {
"baseDuration": 16871,
"duration": 16871,
"length": 380112
},
"transport": {
"mode": "truck"
},
"type": "vehicle"
},
{
...,
"id": "7aff75f1-fe0a-4a5b-b4d5-32757101aa62",
"postActions": [
{
"action": "wait",
"duration": 39600
}
],
"summary": {
"baseDuration": 55576,
"duration": 55576,
"length": 389440
},
"transport": {
"mode": "truck"
},
"type": "vehicle"
},
{
...,
"id": "721c295d-3b7c-48b7-98ab-bd5e314e71b8",
"notices": [
{
"code": "travelTimeExceedsDriverWorkHours",
"severity": "critical",
"title": "Travel time exceeds maximum scheduled driver time"
}
],
"summary": {
"baseDuration": 20882,
"duration": 20882,
"length": 485031
},
"transport": {
"mode": "truck"
},
"type": "vehicle"
}
]
}
]
}先月の更新