旅程の重複を最小限に抑えて運転しやすいルートを作成する
同じエリアを重複しないよう、最適化アルゴリズムが異なる車両にルートを割り当てるようにしてください。これは特に、ツアーの重複によって非効率なルートや運用コストの増加を招く都市部や地域配送のシナリオにおいて重要です。
objectives配列の一部として問題JSONにminimizeTourOverlap高度な目標を含めることで、ツアーの重複を減らすことができます。この配列は、ツアー最適化プロセスを制御する目標の優先順位を定義します。
注
advancedObjectivesはテスト段階の機能です。テスト段階の機能を車両ルーティング問題に組み込む方法の詳細については、「テスト段階の機能の詳細」または本チュートリアルで取り上げたサンプルのユースケースをご覧ください。- この目標を使用すると、最適化アルゴリズムがツアーをより明確に分離しようとするため、コスト、距離、所要時間といったツアーパラメーターに影響を与える可能性があります。
advancedObjectives配列内の目標の順序は重要です。配列内でのminimizeTourOverlap目標の順位が高いほど、最適化アルゴリズムはそれをより優先します。詳細については、「特定の最適化目標に合わせて目的関数を使用する」を参照してください。
シナリオ:地域配送サービス
このシナリオでは、10件の注文の容量を持つスクーターを4台、地域配送サービスが運用しています。その運行管理に関するルーティング問題には、サービスエリア内に密集した40件のジョブが含まれています。以下の例をご覧ください。
以下のセクションでは、minimizeTourOverlap目標の有無によって1つの車両ルーティング問題に対するソリューションを比較し、その目標が結果として得られるツアーに与える影響を示します。
ユースケース1:minimizeTourOverlap目的なし
このケースでは、車両ルーティング問題に特定の最適化目標は含まれておらず、そのため最適化アルゴリズムは最適な解を決定する際にデフォルトの目標のみを適用します。
このユースケースは、デフォルトの目標を使用したソリューションと、ツアーの重複を抑えることを目的としたソリューションの動作を比較するための基準となります。
次のセクションには、問題のJSON全体が含まれています。
Click to expand/collapse the sample JSON
{
"fleet": {
"types": [
{
"id": "vehicle_1",
"profile": "vehicle",
"costs": {
"fixed": 20,
"distance": 0.5,
"time": 0.002
},
"shifts": [
{
"start": {
"time": "2023-12-06T09:00:00+02:00",
"location": {
"lat": 52.213985,
"lng": 21.004046
}
},
"end": {
"time": "2023-12-06T19:00:00+02:00",
"location": {
"lat": 52.213985,
"lng": 21.004046
}
}
}
],
"capacity": [
10
],
"amount": 4
}
],
"profiles": [
{
"type": "scooter",
"name": "vehicle"
}
]
},
"plan": {
"jobs": [
{
"id": "Job_0",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.198437,
"lng": 21.020396
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_1",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.196852,
"lng": 21.01393
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_2",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.210221,
"lng": 21.008033
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_3",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.211604,
"lng": 21.018408
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_4",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.196201,
"lng": 21.003641
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_5",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.201661,
"lng": 21.0019
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_6",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.208418,
"lng": 20.99924
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_7",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.208443,
"lng": 21.0039
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_8",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.2099,
"lng": 21.01501
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_9",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.208032,
"lng": 21.019491
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_10",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.207339,
"lng": 21.013889
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_11",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.206026,
"lng": 21.011517
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_12",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.207388,
"lng": 21.01074
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_13",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.206785,
"lng": 21.007355
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_14",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.205227,
"lng": 21.008841
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_15",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.20263,
"lng": 21.009905
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_16",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.202166,
"lng": 21.008065
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_17",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.199205,
"lng": 21.009271
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_18",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.199146,
"lng": 21.005134
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_19",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.19785,
"lng": 21.004998
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_20",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.204318,
"lng": 21.001053
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_21",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.205608,
"lng": 20.999893
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_22",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.204826,
"lng": 21.003042
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_23",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.206454,
"lng": 21.004241
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_24",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.197989,
"lng": 21.015325
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_25",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.197208,
"lng": 21.018194
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_26",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.200472,
"lng": 21.014328
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_27",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.201151,
"lng": 21.022592
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_28",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.198854,
"lng": 21.012977
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_29",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.199743,
"lng": 21.01647
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_30",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.198428,
"lng": 21.017885
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_31",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.202742,
"lng": 21.016829
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_32",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.20075,
"lng": 21.020079
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_33",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.205546,
"lng": 21.021793
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_34",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.20459,
"lng": 21.014063
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_35",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.203915,
"lng": 21.022401
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_36",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.19966,
"lng": 21.023483
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_37",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.198207,
"lng": 21.022368
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_38",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.206908,
"lng": 21.017486
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_39",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.208587,
"lng": 21.01048
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
}
]
}
}ソリューション
次の図はソリューションの内訳を示したものです。最適化アルゴリズムは、提供されたパラメーターを考慮して、問題に効率的に対処しました。
しかし、内訳が示すように、すべてのツアーが互いに重複しており、まとまりに欠けています。ツアー間の重複は、効率の低下や遅延、さらにはナビゲーションの複雑化を引き起こす可能性があります。特に、人口密集地で小型車両を使って配達する場合には注意が必要です。
次のセクションには完全なソリューションJSONが含まれています。
Click to expand/collapse the sample JSON
{
"statistic": {
"cost": 16898.844,
"distance": 33607,
"duration": 7672,
"times": {
"driving": 5272,
"serving": 2400,
"waiting": 0,
"stopping": 0,
"break": 0
}
},
"tours": [
{
"vehicleId": "vehicle_1_3",
"typeId": "vehicle_1",
"stops": [
{
"time": {
"arrival": "2023-12-06T07:00:00Z",
"departure": "2023-12-06T07:00:00Z"
},
"load": [
10
],
"activities": [
{
"jobId": "departure",
"type": "departure",
"location": {
"lat": 52.213985,
"lng": 21.004046
},
"time": {
"start": "2023-12-06T07:00:00Z",
"end": "2023-12-06T07:00:00Z"
}
}
],
"location": {
"lat": 52.213985,
"lng": 21.004046
},
"distance": 0
},
{
"time": {
"arrival": "2023-12-06T07:03:35Z",
"departure": "2023-12-06T07:04:35Z"
},
"load": [
9
],
"activities": [
{
"jobId": "Job_3",
"type": "delivery",
"location": {
"lat": 52.211604,
"lng": 21.018408
},
"time": {
"start": "2023-12-06T07:03:35Z",
"end": "2023-12-06T07:04:35Z"
}
}
],
"location": {
"lat": 52.211604,
"lng": 21.018408
},
"distance": 1680
},
{
"time": {
"arrival": "2023-12-06T07:06:01Z",
"departure": "2023-12-06T07:07:01Z"
},
"load": [
8
],
"activities": [
{
"jobId": "Job_9",
"type": "delivery",
"location": {
"lat": 52.208032,
"lng": 21.019491
},
"time": {
"start": "2023-12-06T07:06:01Z",
"end": "2023-12-06T07:07:01Z"
}
}
],
"location": {
"lat": 52.208032,
"lng": 21.019491
},
"distance": 2367
},
{
"time": {
"arrival": "2023-12-06T07:08:08Z",
"departure": "2023-12-06T07:09:08Z"
},
"load": [
7
],
"activities": [
{
"jobId": "Job_38",
"type": "delivery",
"location": {
"lat": 52.206908,
"lng": 21.017486
},
"time": {
"start": "2023-12-06T07:08:08Z",
"end": "2023-12-06T07:09:08Z"
}
}
],
"location": {
"lat": 52.206908,
"lng": 21.017486
},
"distance": 2663
},
{
"time": {
"arrival": "2023-12-06T07:12:00Z",
"departure": "2023-12-06T07:13:00Z"
},
"load": [
6
],
"activities": [
{
"jobId": "Job_35",
"type": "delivery",
"location": {
"lat": 52.203915,
"lng": 21.022401
},
"time": {
"start": "2023-12-06T07:12:00Z",
"end": "2023-12-06T07:13:00Z"
}
}
],
"location": {
"lat": 52.203915,
"lng": 21.022401
},
"distance": 3513
},
{
"time": {
"arrival": "2023-12-06T07:13:52Z",
"departure": "2023-12-06T07:14:52Z"
},
"load": [
5
],
"activities": [
{
"jobId": "Job_27",
"type": "delivery",
"location": {
"lat": 52.201151,
"lng": 21.022592
},
"time": {
"start": "2023-12-06T07:13:52Z",
"end": "2023-12-06T07:14:52Z"
}
}
],
"location": {
"lat": 52.201151,
"lng": 21.022592
},
"distance": 3951
},
{
"time": {
"arrival": "2023-12-06T07:15:20Z",
"departure": "2023-12-06T07:16:20Z"
},
"load": [
4
],
"activities": [
{
"jobId": "Job_32",
"type": "delivery",
"location": {
"lat": 52.20075,
"lng": 21.020079
},
"time": {
"start": "2023-12-06T07:15:20Z",
"end": "2023-12-06T07:16:20Z"
}
}
],
"location": {
"lat": 52.20075,
"lng": 21.020079
},
"distance": 4128
},
{
"time": {
"arrival": "2023-12-06T07:17:41Z",
"departure": "2023-12-06T07:18:41Z"
},
"load": [
3
],
"activities": [
{
"jobId": "Job_26",
"type": "delivery",
"location": {
"lat": 52.200472,
"lng": 21.014328
},
"time": {
"start": "2023-12-06T07:17:41Z",
"end": "2023-12-06T07:18:41Z"
}
}
],
"location": {
"lat": 52.200472,
"lng": 21.014328
},
"distance": 4598
},
{
"time": {
"arrival": "2023-12-06T07:20:30Z",
"departure": "2023-12-06T07:21:30Z"
},
"load": [
2
],
"activities": [
{
"jobId": "Job_31",
"type": "delivery",
"location": {
"lat": 52.202742,
"lng": 21.016829
},
"time": {
"start": "2023-12-06T07:20:30Z",
"end": "2023-12-06T07:21:30Z"
}
}
],
"location": {
"lat": 52.202742,
"lng": 21.016829
},
"distance": 5157
},
{
"time": {
"arrival": "2023-12-06T07:22:29Z",
"departure": "2023-12-06T07:23:29Z"
},
"load": [
1
],
"activities": [
{
"jobId": "Job_34",
"type": "delivery",
"location": {
"lat": 52.20459,
"lng": 21.014063
},
"time": {
"start": "2023-12-06T07:22:29Z",
"end": "2023-12-06T07:23:29Z"
}
}
],
"location": {
"lat": 52.20459,
"lng": 21.014063
},
"distance": 5510
},
{
"time": {
"arrival": "2023-12-06T07:24:50Z",
"departure": "2023-12-06T07:25:50Z"
},
"load": [
0
],
"activities": [
{
"jobId": "Job_11",
"type": "delivery",
"location": {
"lat": 52.206026,
"lng": 21.011517
},
"time": {
"start": "2023-12-06T07:24:50Z",
"end": "2023-12-06T07:25:50Z"
}
}
],
"location": {
"lat": 52.206026,
"lng": 21.011517
},
"distance": 5877
},
{
"time": {
"arrival": "2023-12-06T07:29:03Z",
"departure": "2023-12-06T07:29:03Z"
},
"load": [
0
],
"activities": [
{
"jobId": "arrival",
"type": "arrival",
"location": {
"lat": 52.213985,
"lng": 21.004046
},
"time": {
"start": "2023-12-06T07:29:03Z",
"end": "2023-12-06T07:29:03Z"
}
}
],
"location": {
"lat": 52.213985,
"lng": 21.004046
},
"distance": 7394
}
],
"statistic": {
"cost": 3720.486,
"distance": 7394,
"duration": 1743,
"times": {
"driving": 1143,
"serving": 600,
"waiting": 0,
"stopping": 0,
"break": 0
}
},
"shiftIndex": 0
},
{
"vehicleId": "vehicle_1_4",
"typeId": "vehicle_1",
"stops": [
{
"time": {
"arrival": "2023-12-06T07:00:00Z",
"departure": "2023-12-06T07:00:00Z"
},
"load": [
10
],
"activities": [
{
"jobId": "departure",
"type": "departure",
"location": {
"lat": 52.213985,
"lng": 21.004046
},
"time": {
"start": "2023-12-06T07:00:00Z",
"end": "2023-12-06T07:00:00Z"
}
}
],
"location": {
"lat": 52.213985,
"lng": 21.004046
},
"distance": 0
},
{
"time": {
"arrival": "2023-12-06T07:02:37Z",
"departure": "2023-12-06T07:03:37Z"
},
"load": [
9
],
"activities": [
{
"jobId": "Job_7",
"type": "delivery",
"location": {
"lat": 52.208443,
"lng": 21.0039
},
"time": {
"start": "2023-12-06T07:02:37Z",
"end": "2023-12-06T07:03:37Z"
}
}
],
"location": {
"lat": 52.208443,
"lng": 21.0039
},
"distance": 1086
},
{
"time": {
"arrival": "2023-12-06T07:04:47Z",
"departure": "2023-12-06T07:05:47Z"
},
"load": [
8
],
"activities": [
{
"jobId": "Job_6",
"type": "delivery",
"location": {
"lat": 52.208418,
"lng": 20.99924
},
"time": {
"start": "2023-12-06T07:04:47Z",
"end": "2023-12-06T07:05:47Z"
}
}
],
"location": {
"lat": 52.208418,
"lng": 20.99924
},
"distance": 1463
},
{
"time": {
"arrival": "2023-12-06T07:07:15Z",
"departure": "2023-12-06T07:08:15Z"
},
"load": [
7
],
"activities": [
{
"jobId": "Job_23",
"type": "delivery",
"location": {
"lat": 52.206454,
"lng": 21.004241
},
"time": {
"start": "2023-12-06T07:07:15Z",
"end": "2023-12-06T07:08:15Z"
}
}
],
"location": {
"lat": 52.206454,
"lng": 21.004241
},
"distance": 2013
},
{
"time": {
"arrival": "2023-12-06T07:11:04Z",
"departure": "2023-12-06T07:12:04Z"
},
"load": [
6
],
"activities": [
{
"jobId": "Job_15",
"type": "delivery",
"location": {
"lat": 52.20263,
"lng": 21.009905
},
"time": {
"start": "2023-12-06T07:11:04Z",
"end": "2023-12-06T07:12:04Z"
}
}
],
"location": {
"lat": 52.20263,
"lng": 21.009905
},
"distance": 2974
},
{
"time": {
"arrival": "2023-12-06T07:14:47Z",
"departure": "2023-12-06T07:15:47Z"
},
"load": [
5
],
"activities": [
{
"jobId": "Job_4",
"type": "delivery",
"location": {
"lat": 52.196201,
"lng": 21.003641
},
"time": {
"start": "2023-12-06T07:14:47Z",
"end": "2023-12-06T07:15:47Z"
}
}
],
"location": {
"lat": 52.196201,
"lng": 21.003641
},
"distance": 4167
},
{
"time": {
"arrival": "2023-12-06T07:20:15Z",
"departure": "2023-12-06T07:21:15Z"
},
"load": [
4
],
"activities": [
{
"jobId": "Job_0",
"type": "delivery",
"location": {
"lat": 52.198437,
"lng": 21.020396
},
"time": {
"start": "2023-12-06T07:20:15Z",
"end": "2023-12-06T07:21:15Z"
}
}
],
"location": {
"lat": 52.198437,
"lng": 21.020396
},
"distance": 5915
},
{
"time": {
"arrival": "2023-12-06T07:22:41Z",
"departure": "2023-12-06T07:23:41Z"
},
"load": [
3
],
"activities": [
{
"jobId": "Job_30",
"type": "delivery",
"location": {
"lat": 52.198428,
"lng": 21.017885
},
"time": {
"start": "2023-12-06T07:22:41Z",
"end": "2023-12-06T07:23:41Z"
}
}
],
"location": {
"lat": 52.198428,
"lng": 21.017885
},
"distance": 6231
},
{
"time": {
"arrival": "2023-12-06T07:24:50Z",
"departure": "2023-12-06T07:25:50Z"
},
"load": [
2
],
"activities": [
{
"jobId": "Job_24",
"type": "delivery",
"location": {
"lat": 52.197989,
"lng": 21.015325
},
"time": {
"start": "2023-12-06T07:24:50Z",
"end": "2023-12-06T07:25:50Z"
}
}
],
"location": {
"lat": 52.197989,
"lng": 21.015325
},
"distance": 6533
},
{
"time": {
"arrival": "2023-12-06T07:26:37Z",
"departure": "2023-12-06T07:27:37Z"
},
"load": [
1
],
"activities": [
{
"jobId": "Job_28",
"type": "delivery",
"location": {
"lat": 52.198854,
"lng": 21.012977
},
"time": {
"start": "2023-12-06T07:26:37Z",
"end": "2023-12-06T07:27:37Z"
}
}
],
"location": {
"lat": 52.198854,
"lng": 21.012977
},
"distance": 6772
},
{
"time": {
"arrival": "2023-12-06T07:30:24Z",
"departure": "2023-12-06T07:31:24Z"
},
"load": [
0
],
"activities": [
{
"jobId": "Job_2",
"type": "delivery",
"location": {
"lat": 52.210221,
"lng": 21.008033
},
"time": {
"start": "2023-12-06T07:30:24Z",
"end": "2023-12-06T07:31:24Z"
}
}
],
"location": {
"lat": 52.210221,
"lng": 21.008033
},
"distance": 8141
},
{
"time": {
"arrival": "2023-12-06T07:34:03Z",
"departure": "2023-12-06T07:34:03Z"
},
"load": [
0
],
"activities": [
{
"jobId": "arrival",
"type": "arrival",
"location": {
"lat": 52.213985,
"lng": 21.004046
},
"time": {
"start": "2023-12-06T07:34:03Z",
"end": "2023-12-06T07:34:03Z"
}
}
],
"location": {
"lat": 52.213985,
"lng": 21.004046
},
"distance": 9082
}
],
"statistic": {
"cost": 4565.086,
"distance": 9082,
"duration": 2043,
"times": {
"driving": 1443,
"serving": 600,
"waiting": 0,
"stopping": 0,
"break": 0
}
},
"shiftIndex": 0
},
{
"vehicleId": "vehicle_1_1",
"typeId": "vehicle_1",
"stops": [
{
"time": {
"arrival": "2023-12-06T07:00:00Z",
"departure": "2023-12-06T07:00:00Z"
},
"load": [
10
],
"activities": [
{
"jobId": "departure",
"type": "departure",
"location": {
"lat": 52.213985,
"lng": 21.004046
},
"time": {
"start": "2023-12-06T07:00:00Z",
"end": "2023-12-06T07:00:00Z"
}
}
],
"location": {
"lat": 52.213985,
"lng": 21.004046
},
"distance": 0
},
{
"time": {
"arrival": "2023-12-06T07:02:42Z",
"departure": "2023-12-06T07:03:42Z"
},
"load": [
9
],
"activities": [
{
"jobId": "Job_12",
"type": "delivery",
"location": {
"lat": 52.207388,
"lng": 21.01074
},
"time": {
"start": "2023-12-06T07:02:42Z",
"end": "2023-12-06T07:03:42Z"
}
}
],
"location": {
"lat": 52.207388,
"lng": 21.01074
},
"distance": 1165
},
{
"time": {
"arrival": "2023-12-06T07:03:50Z",
"departure": "2023-12-06T07:04:50Z"
},
"load": [
8
],
"activities": [
{
"jobId": "Job_39",
"type": "delivery",
"location": {
"lat": 52.208587,
"lng": 21.01048
},
"time": {
"start": "2023-12-06T07:03:50Z",
"end": "2023-12-06T07:04:50Z"
}
}
],
"location": {
"lat": 52.208587,
"lng": 21.01048
},
"distance": 1230
},
{
"time": {
"arrival": "2023-12-06T07:06:25Z",
"departure": "2023-12-06T07:07:25Z"
},
"load": [
7
],
"activities": [
{
"jobId": "Job_10",
"type": "delivery",
"location": {
"lat": 52.207339,
"lng": 21.013889
},
"time": {
"start": "2023-12-06T07:06:25Z",
"end": "2023-12-06T07:07:25Z"
}
}
],
"location": {
"lat": 52.207339,
"lng": 21.013889
},
"distance": 1688
},
{
"time": {
"arrival": "2023-12-06T07:09:38Z",
"departure": "2023-12-06T07:10:38Z"
},
"load": [
6
],
"activities": [
{
"jobId": "Job_29",
"type": "delivery",
"location": {
"lat": 52.199743,
"lng": 21.01647
},
"time": {
"start": "2023-12-06T07:09:38Z",
"end": "2023-12-06T07:10:38Z"
}
}
],
"location": {
"lat": 52.199743,
"lng": 21.01647
},
"distance": 2670
},
{
"time": {
"arrival": "2023-12-06T07:12:24Z",
"departure": "2023-12-06T07:13:24Z"
},
"load": [
5
],
"activities": [
{
"jobId": "Job_1",
"type": "delivery",
"location": {
"lat": 52.196852,
"lng": 21.01393
},
"time": {
"start": "2023-12-06T07:12:24Z",
"end": "2023-12-06T07:13:24Z"
}
}
],
"location": {
"lat": 52.196852,
"lng": 21.01393
},
"distance": 3402
},
{
"time": {
"arrival": "2023-12-06T07:14:10Z",
"departure": "2023-12-06T07:15:10Z"
},
"load": [
4
],
"activities": [
{
"jobId": "Job_25",
"type": "delivery",
"location": {
"lat": 52.197208,
"lng": 21.018194
},
"time": {
"start": "2023-12-06T07:14:10Z",
"end": "2023-12-06T07:15:10Z"
}
}
],
"location": {
"lat": 52.197208,
"lng": 21.018194
},
"distance": 3693
},
{
"time": {
"arrival": "2023-12-06T07:16:11Z",
"departure": "2023-12-06T07:17:11Z"
},
"load": [
3
],
"activities": [
{
"jobId": "Job_37",
"type": "delivery",
"location": {
"lat": 52.198207,
"lng": 21.022368
},
"time": {
"start": "2023-12-06T07:16:11Z",
"end": "2023-12-06T07:17:11Z"
}
}
],
"location": {
"lat": 52.198207,
"lng": 21.022368
},
"distance": 3997
},
{
"time": {
"arrival": "2023-12-06T07:19:20Z",
"departure": "2023-12-06T07:20:20Z"
},
"load": [
2
],
"activities": [
{
"jobId": "Job_36",
"type": "delivery",
"location": {
"lat": 52.19966,
"lng": 21.023483
},
"time": {
"start": "2023-12-06T07:19:20Z",
"end": "2023-12-06T07:20:20Z"
}
}
],
"location": {
"lat": 52.19966,
"lng": 21.023483
},
"distance": 4626
},
{
"time": {
"arrival": "2023-12-06T07:22:22Z",
"departure": "2023-12-06T07:23:22Z"
},
"load": [
1
],
"activities": [
{
"jobId": "Job_33",
"type": "delivery",
"location": {
"lat": 52.205546,
"lng": 21.021793
},
"time": {
"start": "2023-12-06T07:22:22Z",
"end": "2023-12-06T07:23:22Z"
}
}
],
"location": {
"lat": 52.205546,
"lng": 21.021793
},
"distance": 5469
},
{
"time": {
"arrival": "2023-12-06T07:25:49Z",
"departure": "2023-12-06T07:26:49Z"
},
"load": [
0
],
"activities": [
{
"jobId": "Job_8",
"type": "delivery",
"location": {
"lat": 52.2099,
"lng": 21.01501
},
"time": {
"start": "2023-12-06T07:25:49Z",
"end": "2023-12-06T07:26:49Z"
}
}
],
"location": {
"lat": 52.2099,
"lng": 21.01501
},
"distance": 6393
},
{
"time": {
"arrival": "2023-12-06T07:30:34Z",
"departure": "2023-12-06T07:30:34Z"
},
"load": [
0
],
"activities": [
{
"jobId": "arrival",
"type": "arrival",
"location": {
"lat": 52.213985,
"lng": 21.004046
},
"time": {
"start": "2023-12-06T07:30:34Z",
"end": "2023-12-06T07:30:34Z"
}
}
],
"location": {
"lat": 52.213985,
"lng": 21.004046
},
"distance": 7796
}
],
"statistic": {
"cost": 3921.668,
"distance": 7796,
"duration": 1834,
"times": {
"driving": 1234,
"serving": 600,
"waiting": 0,
"stopping": 0,
"break": 0
}
},
"shiftIndex": 0
},
{
"vehicleId": "vehicle_1_2",
"typeId": "vehicle_1",
"stops": [
{
"time": {
"arrival": "2023-12-06T07:00:00Z",
"departure": "2023-12-06T07:00:00Z"
},
"load": [
10
],
"activities": [
{
"jobId": "departure",
"type": "departure",
"location": {
"lat": 52.213985,
"lng": 21.004046
},
"time": {
"start": "2023-12-06T07:00:00Z",
"end": "2023-12-06T07:00:00Z"
}
}
],
"location": {
"lat": 52.213985,
"lng": 21.004046
},
"distance": 0
},
{
"time": {
"arrival": "2023-12-06T07:02:36Z",
"departure": "2023-12-06T07:03:36Z"
},
"load": [
9
],
"activities": [
{
"jobId": "Job_14",
"type": "delivery",
"location": {
"lat": 52.205227,
"lng": 21.008841
},
"time": {
"start": "2023-12-06T07:02:36Z",
"end": "2023-12-06T07:03:36Z"
}
}
],
"location": {
"lat": 52.205227,
"lng": 21.008841
},
"distance": 1297
},
{
"time": {
"arrival": "2023-12-06T07:05:15Z",
"departure": "2023-12-06T07:06:15Z"
},
"load": [
8
],
"activities": [
{
"jobId": "Job_13",
"type": "delivery",
"location": {
"lat": 52.206785,
"lng": 21.007355
},
"time": {
"start": "2023-12-06T07:05:15Z",
"end": "2023-12-06T07:06:15Z"
}
}
],
"location": {
"lat": 52.206785,
"lng": 21.007355
},
"distance": 1884
},
{
"time": {
"arrival": "2023-12-06T07:08:55Z",
"departure": "2023-12-06T07:09:55Z"
},
"load": [
7
],
"activities": [
{
"jobId": "Job_20",
"type": "delivery",
"location": {
"lat": 52.204318,
"lng": 21.001053
},
"time": {
"start": "2023-12-06T07:08:55Z",
"end": "2023-12-06T07:09:55Z"
}
}
],
"location": {
"lat": 52.204318,
"lng": 21.001053
},
"distance": 2835
},
{
"time": {
"arrival": "2023-12-06T07:10:43Z",
"departure": "2023-12-06T07:11:43Z"
},
"load": [
6
],
"activities": [
{
"jobId": "Job_21",
"type": "delivery",
"location": {
"lat": 52.205608,
"lng": 20.999893
},
"time": {
"start": "2023-12-06T07:10:43Z",
"end": "2023-12-06T07:11:43Z"
}
}
],
"location": {
"lat": 52.205608,
"lng": 20.999893
},
"distance": 3046
},
{
"time": {
"arrival": "2023-12-06T07:12:45Z",
"departure": "2023-12-06T07:13:45Z"
},
"load": [
5
],
"activities": [
{
"jobId": "Job_22",
"type": "delivery",
"location": {
"lat": 52.204826,
"lng": 21.003042
},
"time": {
"start": "2023-12-06T07:12:45Z",
"end": "2023-12-06T07:13:45Z"
}
}
],
"location": {
"lat": 52.204826,
"lng": 21.003042
},
"distance": 3479
},
{
"time": {
"arrival": "2023-12-06T07:16:05Z",
"departure": "2023-12-06T07:17:05Z"
},
"load": [
4
],
"activities": [
{
"jobId": "Job_5",
"type": "delivery",
"location": {
"lat": 52.201661,
"lng": 21.0019
},
"time": {
"start": "2023-12-06T07:16:05Z",
"end": "2023-12-06T07:17:05Z"
}
}
],
"location": {
"lat": 52.201661,
"lng": 21.0019
},
"distance": 4271
},
{
"time": {
"arrival": "2023-12-06T07:19:47Z",
"departure": "2023-12-06T07:20:47Z"
},
"load": [
3
],
"activities": [
{
"jobId": "Job_19",
"type": "delivery",
"location": {
"lat": 52.19785,
"lng": 21.004998
},
"time": {
"start": "2023-12-06T07:19:47Z",
"end": "2023-12-06T07:20:47Z"
}
}
],
"location": {
"lat": 52.19785,
"lng": 21.004998
},
"distance": 5559
},
{
"time": {
"arrival": "2023-12-06T07:22:51Z",
"departure": "2023-12-06T07:23:51Z"
},
"load": [
2
],
"activities": [
{
"jobId": "Job_18",
"type": "delivery",
"location": {
"lat": 52.199146,
"lng": 21.005134
},
"time": {
"start": "2023-12-06T07:22:51Z",
"end": "2023-12-06T07:23:51Z"
}
}
],
"location": {
"lat": 52.199146,
"lng": 21.005134
},
"distance": 6091
},
{
"time": {
"arrival": "2023-12-06T07:25:11Z",
"departure": "2023-12-06T07:26:11Z"
},
"load": [
1
],
"activities": [
{
"jobId": "Job_17",
"type": "delivery",
"location": {
"lat": 52.199205,
"lng": 21.009271
},
"time": {
"start": "2023-12-06T07:25:11Z",
"end": "2023-12-06T07:26:11Z"
}
}
],
"location": {
"lat": 52.199205,
"lng": 21.009271
},
"distance": 6534
},
{
"time": {
"arrival": "2023-12-06T07:29:10Z",
"departure": "2023-12-06T07:30:10Z"
},
"load": [
0
],
"activities": [
{
"jobId": "Job_16",
"type": "delivery",
"location": {
"lat": 52.202166,
"lng": 21.008065
},
"time": {
"start": "2023-12-06T07:29:10Z",
"end": "2023-12-06T07:30:10Z"
}
}
],
"location": {
"lat": 52.202166,
"lng": 21.008065
},
"distance": 7521
},
{
"time": {
"arrival": "2023-12-06T07:34:12Z",
"departure": "2023-12-06T07:34:12Z"
},
"load": [
0
],
"activities": [
{
"jobId": "arrival",
"type": "arrival",
"location": {
"lat": 52.213985,
"lng": 21.004046
},
"time": {
"start": "2023-12-06T07:34:12Z",
"end": "2023-12-06T07:34:12Z"
}
}
],
"location": {
"lat": 52.213985,
"lng": 21.004046
},
"distance": 9335
}
],
"statistic": {
"cost": 4691.604,
"distance": 9335,
"duration": 2052,
"times": {
"driving": 1452,
"serving": 600,
"waiting": 0,
"stopping": 0,
"break": 0
}
},
"shiftIndex": 0
}
]
}ユースケース2:minimizeTourOverlap目的あり
すべてのツアーが重複せず、地理的に明確かつコンパクトなエリアをカバーするようなソリューションを優先するには、車両ルーティング問題を次のように修正します。
-
以下のスニペットに示すように、
experimentalFeatures配列の一部としてadvancedObjectives機能を追加します。"configuration": { "experimentalFeatures": [ "advancedObjectives" ] } -
たとえば、
minimizeTourOverlap目標を含むadvancedObjectives配列を追加します。"advancedObjectives": [ [ { "type": "minimizeUnassigned" } ], [ { "type": "minimizeTours" } ], [ { "type": "minimizeTourOverlap" } ], [ { "type": "minimizeCost" } ] ]
注
前の例に示したように、目標とその階層について次の点に留意してください。
minimizeTourOverlap目標をminimizeUnassigned目標およびminimizeTours目標の下位に配置することで、未割り当てジョブの最小化と最適な車両数の使用という主要な目標が最優先として維持されます。この手法は、予測可能で効率的なツアー計画の維持に役立ちます。minimizeTourOverlap目標をminimizeCost目標の下位に配置しても、ツアーの重複を減らす効果はほとんどない可能性があります。この例では、重複の削減の優先度より上位に維持しつつ、効率的で明確なルートを維持するために、minimizeTourOverlapが意図的にminimizeCostよりも上位に配置されています。
詳細については、完全な問題のJSONを参照してください。
Click to expand/collapse the sample JSON
{
"fleet": {
"types": [
{
"id": "vehicle_1",
"profile": "vehicle",
"costs": {
"fixed": 20,
"distance": 0.5,
"time": 0.002
},
"shifts": [
{
"start": {
"time": "2023-12-06T09:00:00+02:00",
"location": {
"lat": 52.213985,
"lng": 21.004046
}
},
"end": {
"time": "2023-12-06T19:00:00+02:00",
"location": {
"lat": 52.213985,
"lng": 21.004046
}
}
}
],
"capacity": [
10
],
"amount": 4
}
],
"profiles": [
{
"type": "scooter",
"name": "vehicle"
}
]
},
"plan": {
"jobs": [
{
"id": "Job_0",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.198437,
"lng": 21.020396
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_1",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.196852,
"lng": 21.01393
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_2",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.210221,
"lng": 21.008033
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_3",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.211604,
"lng": 21.018408
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_4",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.196201,
"lng": 21.003641
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_5",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.201661,
"lng": 21.0019
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_6",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.208418,
"lng": 20.99924
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_7",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.208443,
"lng": 21.0039
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_8",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.2099,
"lng": 21.01501
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_9",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.208032,
"lng": 21.019491
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_10",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.207339,
"lng": 21.013889
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_11",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.206026,
"lng": 21.011517
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_12",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.207388,
"lng": 21.01074
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_13",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.206785,
"lng": 21.007355
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_14",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.205227,
"lng": 21.008841
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_15",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.20263,
"lng": 21.009905
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_16",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.202166,
"lng": 21.008065
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_17",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.199205,
"lng": 21.009271
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_18",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.199146,
"lng": 21.005134
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_19",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.19785,
"lng": 21.004998
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_20",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.204318,
"lng": 21.001053
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_21",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.205608,
"lng": 20.999893
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_22",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.204826,
"lng": 21.003042
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_23",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.206454,
"lng": 21.004241
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_24",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.197989,
"lng": 21.015325
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_25",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.197208,
"lng": 21.018194
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_26",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.200472,
"lng": 21.014328
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_27",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.201151,
"lng": 21.022592
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_28",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.198854,
"lng": 21.012977
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_29",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.199743,
"lng": 21.01647
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_30",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.198428,
"lng": 21.017885
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_31",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.202742,
"lng": 21.016829
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_32",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.20075,
"lng": 21.020079
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_33",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.205546,
"lng": 21.021793
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_34",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.20459,
"lng": 21.014063
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_35",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.203915,
"lng": 21.022401
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_36",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.19966,
"lng": 21.023483
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_37",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.198207,
"lng": 21.022368
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_38",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.206908,
"lng": 21.017486
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
},
{
"id": "Job_39",
"tasks": {
"deliveries": [
{
"places": [
{
"location": {
"lat": 52.208587,
"lng": 21.01048
},
"duration": 60
}
],
"demand": [
1
]
}
]
}
}
]
},
"configuration": {
"experimentalFeatures": [
"advancedObjectives"
]
},
"advancedObjectives": [
[
{
"type": "minimizeUnassigned"
}
],
[
{
"type": "minimizeTours"
}
],
[
{
"type": "minimizeTourOverlap"
}
],
[
{
"type": "minimizeCost"
}
]
]
}ソリューション
問題のパラメーターにツアーの重複を最小化する目標が含まれていたため、最適化アルゴリズムはそれを反映し、以下の図のように、より明確に分離されたコンパクトなツアーを生成しました。
この新しいツアープランにより、スクーター車両はよりコンパクトで管理しやすいエリアを担当できるようになり、交通渋滞やルートの混乱による遅延の可能性を低減できたと考えられます。
次のセクションには完全なソリューションJSONが含まれています。
Click to expand/collapse the sample JSON
{
"statistic": {
"cost": 17541.021999999997,
"distance": 34891,
"duration": 7761,
"times": {
"driving": 5361,
"serving": 2400,
"waiting": 0,
"stopping": 0,
"break": 0
}
},
"tours": [
{
"vehicleId": "vehicle_1_2",
"typeId": "vehicle_1",
"stops": [
{
"time": {
"arrival": "2023-12-06T07:00:00Z",
"departure": "2023-12-06T07:00:00Z"
},
"load": [
10
],
"activities": [
{
"jobId": "departure",
"type": "departure",
"location": {
"lat": 52.213985,
"lng": 21.004046
},
"time": {
"start": "2023-12-06T07:00:00Z",
"end": "2023-12-06T07:00:00Z"
}
}
],
"location": {
"lat": 52.213985,
"lng": 21.004046
},
"distance": 0
},
{
"time": {
"arrival": "2023-12-06T07:02:37Z",
"departure": "2023-12-06T07:03:37Z"
},
"load": [
9
],
"activities": [
{
"jobId": "Job_7",
"type": "delivery",
"location": {
"lat": 52.208443,
"lng": 21.0039
},
"time": {
"start": "2023-12-06T07:02:37Z",
"end": "2023-12-06T07:03:37Z"
}
}
],
"location": {
"lat": 52.208443,
"lng": 21.0039
},
"distance": 1086
},
{
"time": {
"arrival": "2023-12-06T07:04:47Z",
"departure": "2023-12-06T07:05:47Z"
},
"load": [
8
],
"activities": [
{
"jobId": "Job_6",
"type": "delivery",
"location": {
"lat": 52.208418,
"lng": 20.99924
},
"time": {
"start": "2023-12-06T07:04:47Z",
"end": "2023-12-06T07:05:47Z"
}
}
],
"location": {
"lat": 52.208418,
"lng": 20.99924
},
"distance": 1463
},
{
"time": {
"arrival": "2023-12-06T07:07:21Z",
"departure": "2023-12-06T07:08:21Z"
},
"load": [
7
],
"activities": [
{
"jobId": "Job_22",
"type": "delivery",
"location": {
"lat": 52.204826,
"lng": 21.003042
},
"time": {
"start": "2023-12-06T07:07:21Z",
"end": "2023-12-06T07:08:21Z"
}
}
],
"location": {
"lat": 52.204826,
"lng": 21.003042
},
"distance": 2006
},
{
"time": {
"arrival": "2023-12-06T07:09:55Z",
"departure": "2023-12-06T07:10:55Z"
},
"load": [
6
],
"activities": [
{
"jobId": "Job_20",
"type": "delivery",
"location": {
"lat": 52.204318,
"lng": 21.001053
},
"time": {
"start": "2023-12-06T07:09:55Z",
"end": "2023-12-06T07:10:55Z"
}
}
],
"location": {
"lat": 52.204318,
"lng": 21.001053
},
"distance": 2491
},
{
"time": {
"arrival": "2023-12-06T07:11:43Z",
"departure": "2023-12-06T07:12:43Z"
},
"load": [
5
],
"activities": [
{
"jobId": "Job_21",
"type": "delivery",
"location": {
"lat": 52.205608,
"lng": 20.999893
},
"time": {
"start": "2023-12-06T07:11:43Z",
"end": "2023-12-06T07:12:43Z"
}
}
],
"location": {
"lat": 52.205608,
"lng": 20.999893
},
"distance": 2702
},
{
"time": {
"arrival": "2023-12-06T07:13:39Z",
"departure": "2023-12-06T07:14:39Z"
},
"load": [
4
],
"activities": [
{
"jobId": "Job_23",
"type": "delivery",
"location": {
"lat": 52.206454,
"lng": 21.004241
},
"time": {
"start": "2023-12-06T07:13:39Z",
"end": "2023-12-06T07:14:39Z"
}
}
],
"location": {
"lat": 52.206454,
"lng": 21.004241
},
"distance": 3142
},
{
"time": {
"arrival": "2023-12-06T07:16:43Z",
"departure": "2023-12-06T07:17:43Z"
},
"load": [
3
],
"activities": [
{
"jobId": "Job_5",
"type": "delivery",
"location": {
"lat": 52.201661,
"lng": 21.0019
},
"time": {
"start": "2023-12-06T07:16:43Z",
"end": "2023-12-06T07:17:43Z"
}
}
],
"location": {
"lat": 52.201661,
"lng": 21.0019
},
"distance": 3906
},
{
"time": {
"arrival": "2023-12-06T07:18:59Z",
"departure": "2023-12-06T07:19:59Z"
},
"load": [
2
],
"activities": [
{
"jobId": "Job_16",
"type": "delivery",
"location": {
"lat": 52.202166,
"lng": 21.008065
},
"time": {
"start": "2023-12-06T07:18:59Z",
"end": "2023-12-06T07:19:59Z"
}
}
],
"location": {
"lat": 52.202166,
"lng": 21.008065
},
"distance": 4589
},
{
"time": {
"arrival": "2023-12-06T07:23:45Z",
"departure": "2023-12-06T07:24:45Z"
},
"load": [
1
],
"activities": [
{
"jobId": "Job_14",
"type": "delivery",
"location": {
"lat": 52.205227,
"lng": 21.008841
},
"time": {
"start": "2023-12-06T07:23:45Z",
"end": "2023-12-06T07:24:45Z"
}
}
],
"location": {
"lat": 52.205227,
"lng": 21.008841
},
"distance": 5778
},
{
"time": {
"arrival": "2023-12-06T07:26:24Z",
"departure": "2023-12-06T07:27:24Z"
},
"load": [
0
],
"activities": [
{
"jobId": "Job_13",
"type": "delivery",
"location": {
"lat": 52.206785,
"lng": 21.007355
},
"time": {
"start": "2023-12-06T07:26:24Z",
"end": "2023-12-06T07:27:24Z"
}
}
],
"location": {
"lat": 52.206785,
"lng": 21.007355
},
"distance": 6365
},
{
"time": {
"arrival": "2023-12-06T07:32:04Z",
"departure": "2023-12-06T07:32:04Z"
},
"load": [
0
],
"activities": [
{
"jobId": "arrival",
"type": "arrival",
"location": {
"lat": 52.213985,
"lng": 21.004046
},
"time": {
"start": "2023-12-06T07:32:04Z",
"end": "2023-12-06T07:32:04Z"
}
}
],
"location": {
"lat": 52.213985,
"lng": 21.004046
},
"distance": 8166
}
],
"statistic": {
"cost": 4106.848,
"distance": 8166,
"duration": 1924,
"times": {
"driving": 1324,
"serving": 600,
"waiting": 0,
"stopping": 0,
"break": 0
}
},
"shiftIndex": 0
},
{
"vehicleId": "vehicle_1_3",
"typeId": "vehicle_1",
"stops": [
{
"time": {
"arrival": "2023-12-06T07:00:00Z",
"departure": "2023-12-06T07:00:00Z"
},
"load": [
10
],
"activities": [
{
"jobId": "departure",
"type": "departure",
"location": {
"lat": 52.213985,
"lng": 21.004046
},
"time": {
"start": "2023-12-06T07:00:00Z",
"end": "2023-12-06T07:00:00Z"
}
}
],
"location": {
"lat": 52.213985,
"lng": 21.004046
},
"distance": 0
},
{
"time": {
"arrival": "2023-12-06T07:05:33Z",
"departure": "2023-12-06T07:06:33Z"
},
"load": [
9
],
"activities": [
{
"jobId": "Job_0",
"type": "delivery",
"location": {
"lat": 52.198437,
"lng": 21.020396
},
"time": {
"start": "2023-12-06T07:05:33Z",
"end": "2023-12-06T07:06:33Z"
}
}
],
"location": {
"lat": 52.198437,
"lng": 21.020396
},
"distance": 2642
},
{
"time": {
"arrival": "2023-12-06T07:07:59Z",
"departure": "2023-12-06T07:08:59Z"
},
"load": [
8
],
"activities": [
{
"jobId": "Job_30",
"type": "delivery",
"location": {
"lat": 52.198428,
"lng": 21.017885
},
"time": {
"start": "2023-12-06T07:07:59Z",
"end": "2023-12-06T07:08:59Z"
}
}
],
"location": {
"lat": 52.198428,
"lng": 21.017885
},
"distance": 2958
},
{
"time": {
"arrival": "2023-12-06T07:09:50Z",
"departure": "2023-12-06T07:10:50Z"
},
"load": [
7
],
"activities": [
{
"jobId": "Job_25",
"type": "delivery",
"location": {
"lat": 52.197208,
"lng": 21.018194
},
"time": {
"start": "2023-12-06T07:09:50Z",
"end": "2023-12-06T07:10:50Z"
}
}
],
"location": {
"lat": 52.197208,
"lng": 21.018194
},
"distance": 3267
},
{
"time": {
"arrival": "2023-12-06T07:11:51Z",
"departure": "2023-12-06T07:12:51Z"
},
"load": [
6
],
"activities": [
{
"jobId": "Job_37",
"type": "delivery",
"location": {
"lat": 52.198207,
"lng": 21.022368
},
"time": {
"start": "2023-12-06T07:11:51Z",
"end": "2023-12-06T07:12:51Z"
}
}
],
"location": {
"lat": 52.198207,
"lng": 21.022368
},
"distance": 3571
},
{
"time": {
"arrival": "2023-12-06T07:15:00Z",
"departure": "2023-12-06T07:16:00Z"
},
"load": [
5
],
"activities": [
{
"jobId": "Job_36",
"type": "delivery",
"location": {
"lat": 52.19966,
"lng": 21.023483
},
"time": {
"start": "2023-12-06T07:15:00Z",
"end": "2023-12-06T07:16:00Z"
}
}
],
"location": {
"lat": 52.19966,
"lng": 21.023483
},
"distance": 4200
},
{
"time": {
"arrival": "2023-12-06T07:18:02Z",
"departure": "2023-12-06T07:19:02Z"
},
"load": [
4
],
"activities": [
{
"jobId": "Job_33",
"type": "delivery",
"location": {
"lat": 52.205546,
"lng": 21.021793
},
"time": {
"start": "2023-12-06T07:18:02Z",
"end": "2023-12-06T07:19:02Z"
}
}
],
"location": {
"lat": 52.205546,
"lng": 21.021793
},
"distance": 5043
},
{
"time": {
"arrival": "2023-12-06T07:20:52Z",
"departure": "2023-12-06T07:21:52Z"
},
"load": [
3
],
"activities": [
{
"jobId": "Job_35",
"type": "delivery",
"location": {
"lat": 52.203915,
"lng": 21.022401
},
"time": {
"start": "2023-12-06T07:20:52Z",
"end": "2023-12-06T07:21:52Z"
}
}
],
"location": {
"lat": 52.203915,
"lng": 21.022401
},
"distance": 5610
},
{
"time": {
"arrival": "2023-12-06T07:22:44Z",
"departure": "2023-12-06T07:23:44Z"
},
"load": [
2
],
"activities": [
{
"jobId": "Job_27",
"type": "delivery",
"location": {
"lat": 52.201151,
"lng": 21.022592
},
"time": {
"start": "2023-12-06T07:22:44Z",
"end": "2023-12-06T07:23:44Z"
}
}
],
"location": {
"lat": 52.201151,
"lng": 21.022592
},
"distance": 6048
},
{
"time": {
"arrival": "2023-12-06T07:24:12Z",
"departure": "2023-12-06T07:25:12Z"
},
"load": [
1
],
"activities": [
{
"jobId": "Job_32",
"type": "delivery",
"location": {
"lat": 52.20075,
"lng": 21.020079
},
"time": {
"start": "2023-12-06T07:24:12Z",
"end": "2023-12-06T07:25:12Z"
}
}
],
"location": {
"lat": 52.20075,
"lng": 21.020079
},
"distance": 6225
},
{
"time": {
"arrival": "2023-12-06T07:26:21Z",
"departure": "2023-12-06T07:27:21Z"
},
"load": [
0
],
"activities": [
{
"jobId": "Job_31",
"type": "delivery",
"location": {
"lat": 52.202742,
"lng": 21.016829
},
"time": {
"start": "2023-12-06T07:26:21Z",
"end": "2023-12-06T07:27:21Z"
}
}
],
"location": {
"lat": 52.202742,
"lng": 21.016829
},
"distance": 6632
},
{
"time": {
"arrival": "2023-12-06T07:31:35Z",
"departure": "2023-12-06T07:31:35Z"
},
"load": [
0
],
"activities": [
{
"jobId": "arrival",
"type": "arrival",
"location": {
"lat": 52.213985,
"lng": 21.004046
},
"time": {
"start": "2023-12-06T07:31:35Z",
"end": "2023-12-06T07:31:35Z"
}
}
],
"location": {
"lat": 52.213985,
"lng": 21.004046
},
"distance": 8718
}
],
"statistic": {
"cost": 4382.79,
"distance": 8718,
"duration": 1895,
"times": {
"driving": 1295,
"serving": 600,
"waiting": 0,
"stopping": 0,
"break": 0
}
},
"shiftIndex": 0
},
{
"vehicleId": "vehicle_1_4",
"typeId": "vehicle_1",
"stops": [
{
"time": {
"arrival": "2023-12-06T07:00:00Z",
"departure": "2023-12-06T07:00:00Z"
},
"load": [
10
],
"activities": [
{
"jobId": "departure",
"type": "departure",
"location": {
"lat": 52.213985,
"lng": 21.004046
},
"time": {
"start": "2023-12-06T07:00:00Z",
"end": "2023-12-06T07:00:00Z"
}
}
],
"location": {
"lat": 52.213985,
"lng": 21.004046
},
"distance": 0
},
{
"time": {
"arrival": "2023-12-06T07:02:42Z",
"departure": "2023-12-06T07:03:42Z"
},
"load": [
9
],
"activities": [
{
"jobId": "Job_12",
"type": "delivery",
"location": {
"lat": 52.207388,
"lng": 21.01074
},
"time": {
"start": "2023-12-06T07:02:42Z",
"end": "2023-12-06T07:03:42Z"
}
}
],
"location": {
"lat": 52.207388,
"lng": 21.01074
},
"distance": 1165
},
{
"time": {
"arrival": "2023-12-06T07:03:50Z",
"departure": "2023-12-06T07:04:50Z"
},
"load": [
8
],
"activities": [
{
"jobId": "Job_39",
"type": "delivery",
"location": {
"lat": 52.208587,
"lng": 21.01048
},
"time": {
"start": "2023-12-06T07:03:50Z",
"end": "2023-12-06T07:04:50Z"
}
}
],
"location": {
"lat": 52.208587,
"lng": 21.01048
},
"distance": 1230
},
{
"time": {
"arrival": "2023-12-06T07:06:25Z",
"departure": "2023-12-06T07:07:25Z"
},
"load": [
7
],
"activities": [
{
"jobId": "Job_10",
"type": "delivery",
"location": {
"lat": 52.207339,
"lng": 21.013889
},
"time": {
"start": "2023-12-06T07:06:25Z",
"end": "2023-12-06T07:07:25Z"
}
}
],
"location": {
"lat": 52.207339,
"lng": 21.013889
},
"distance": 1688
},
{
"time": {
"arrival": "2023-12-06T07:08:32Z",
"departure": "2023-12-06T07:09:32Z"
},
"load": [
6
],
"activities": [
{
"jobId": "Job_34",
"type": "delivery",
"location": {
"lat": 52.20459,
"lng": 21.014063
},
"time": {
"start": "2023-12-06T07:08:32Z",
"end": "2023-12-06T07:09:32Z"
}
}
],
"location": {
"lat": 52.20459,
"lng": 21.014063
},
"distance": 2061
},
{
"time": {
"arrival": "2023-12-06T07:12:12Z",
"departure": "2023-12-06T07:13:12Z"
},
"load": [
5
],
"activities": [
{
"jobId": "Job_8",
"type": "delivery",
"location": {
"lat": 52.2099,
"lng": 21.01501
},
"time": {
"start": "2023-12-06T07:12:12Z",
"end": "2023-12-06T07:13:12Z"
}
}
],
"location": {
"lat": 52.2099,
"lng": 21.01501
},
"distance": 2962
},
{
"time": {
"arrival": "2023-12-06T07:15:20Z",
"departure": "2023-12-06T07:16:20Z"
},
"load": [
4
],
"activities": [
{
"jobId": "Job_3",
"type": "delivery",
"location": {
"lat": 52.211604,
"lng": 21.018408
},
"time": {
"start": "2023-12-06T07:15:20Z",
"end": "2023-12-06T07:16:20Z"
}
}
],
"location": {
"lat": 52.211604,
"lng": 21.018408
},
"distance": 3710
},
{
"time": {
"arrival": "2023-12-06T07:17:46Z",
"departure": "2023-12-06T07:18:46Z"
},
"load": [
3
],
"activities": [
{
"jobId": "Job_9",
"type": "delivery",
"location": {
"lat": 52.208032,
"lng": 21.019491
},
"time": {
"start": "2023-12-06T07:17:46Z",
"end": "2023-12-06T07:18:46Z"
}
}
],
"location": {
"lat": 52.208032,
"lng": 21.019491
},
"distance": 4397
},
{
"time": {
"arrival": "2023-12-06T07:19:53Z",
"departure": "2023-12-06T07:20:53Z"
},
"load": [
2
],
"activities": [
{
"jobId": "Job_38",
"type": "delivery",
"location": {
"lat": 52.206908,
"lng": 21.017486
},
"time": {
"start": "2023-12-06T07:19:53Z",
"end": "2023-12-06T07:20:53Z"
}
}
],
"location": {
"lat": 52.206908,
"lng": 21.017486
},
"distance": 4693
},
{
"time": {
"arrival": "2023-12-06T07:22:32Z",
"departure": "2023-12-06T07:23:32Z"
},
"load": [
1
],
"activities": [
{
"jobId": "Job_11",
"type": "delivery",
"location": {
"lat": 52.206026,
"lng": 21.011517
},
"time": {
"start": "2023-12-06T07:22:32Z",
"end": "2023-12-06T07:23:32Z"
}
}
],
"location": {
"lat": 52.206026,
"lng": 21.011517
},
"distance": 5262
},
{
"time": {
"arrival": "2023-12-06T07:25:43Z",
"departure": "2023-12-06T07:26:43Z"
},
"load": [
0
],
"activities": [
{
"jobId": "Job_2",
"type": "delivery",
"location": {
"lat": 52.210221,
"lng": 21.008033
},
"time": {
"start": "2023-12-06T07:25:43Z",
"end": "2023-12-06T07:26:43Z"
}
}
],
"location": {
"lat": 52.210221,
"lng": 21.008033
},
"distance": 6064
},
{
"time": {
"arrival": "2023-12-06T07:29:22Z",
"departure": "2023-12-06T07:29:22Z"
},
"load": [
0
],
"activities": [
{
"jobId": "arrival",
"type": "arrival",
"location": {
"lat": 52.213985,
"lng": 21.004046
},
"time": {
"start": "2023-12-06T07:29:22Z",
"end": "2023-12-06T07:29:22Z"
}
}
],
"location": {
"lat": 52.213985,
"lng": 21.004046
},
"distance": 7005
}
],
"statistic": {
"cost": 3526.024,
"distance": 7005,
"duration": 1762,
"times": {
"driving": 1162,
"serving": 600,
"waiting": 0,
"stopping": 0,
"break": 0
}
},
"shiftIndex": 0
},
{
"vehicleId": "vehicle_1_1",
"typeId": "vehicle_1",
"stops": [
{
"time": {
"arrival": "2023-12-06T07:00:00Z",
"departure": "2023-12-06T07:00:00Z"
},
"load": [
10
],
"activities": [
{
"jobId": "departure",
"type": "departure",
"location": {
"lat": 52.213985,
"lng": 21.004046
},
"time": {
"start": "2023-12-06T07:00:00Z",
"end": "2023-12-06T07:00:00Z"
}
}
],
"location": {
"lat": 52.213985,
"lng": 21.004046
},
"distance": 0
},
{
"time": {
"arrival": "2023-12-06T07:02:55Z",
"departure": "2023-12-06T07:03:55Z"
},
"load": [
9
],
"activities": [
{
"jobId": "Job_15",
"type": "delivery",
"location": {
"lat": 52.20263,
"lng": 21.009905
},
"time": {
"start": "2023-12-06T07:02:55Z",
"end": "2023-12-06T07:03:55Z"
}
}
],
"location": {
"lat": 52.20263,
"lng": 21.009905
},
"distance": 1561
},
{
"time": {
"arrival": "2023-12-06T07:06:38Z",
"departure": "2023-12-06T07:07:38Z"
},
"load": [
8
],
"activities": [
{
"jobId": "Job_4",
"type": "delivery",
"location": {
"lat": 52.196201,
"lng": 21.003641
},
"time": {
"start": "2023-12-06T07:06:38Z",
"end": "2023-12-06T07:07:38Z"
}
}
],
"location": {
"lat": 52.196201,
"lng": 21.003641
},
"distance": 2754
},
{
"time": {
"arrival": "2023-12-06T07:11:52Z",
"departure": "2023-12-06T07:12:52Z"
},
"load": [
7
],
"activities": [
{
"jobId": "Job_19",
"type": "delivery",
"location": {
"lat": 52.19785,
"lng": 21.004998
},
"time": {
"start": "2023-12-06T07:11:52Z",
"end": "2023-12-06T07:12:52Z"
}
}
],
"location": {
"lat": 52.19785,
"lng": 21.004998
},
"distance": 4843
},
{
"time": {
"arrival": "2023-12-06T07:14:56Z",
"departure": "2023-12-06T07:15:56Z"
},
"load": [
6
],
"activities": [
{
"jobId": "Job_18",
"type": "delivery",
"location": {
"lat": 52.199146,
"lng": 21.005134
},
"time": {
"start": "2023-12-06T07:14:56Z",
"end": "2023-12-06T07:15:56Z"
}
}
],
"location": {
"lat": 52.199146,
"lng": 21.005134
},
"distance": 5375
},
{
"time": {
"arrival": "2023-12-06T07:17:16Z",
"departure": "2023-12-06T07:18:16Z"
},
"load": [
5
],
"activities": [
{
"jobId": "Job_17",
"type": "delivery",
"location": {
"lat": 52.199205,
"lng": 21.009271
},
"time": {
"start": "2023-12-06T07:17:16Z",
"end": "2023-12-06T07:18:16Z"
}
}
],
"location": {
"lat": 52.199205,
"lng": 21.009271
},
"distance": 5818
},
{
"time": {
"arrival": "2023-12-06T07:21:31Z",
"departure": "2023-12-06T07:22:31Z"
},
"load": [
4
],
"activities": [
{
"jobId": "Job_1",
"type": "delivery",
"location": {
"lat": 52.196852,
"lng": 21.01393
},
"time": {
"start": "2023-12-06T07:21:31Z",
"end": "2023-12-06T07:22:31Z"
}
}
],
"location": {
"lat": 52.196852,
"lng": 21.01393
},
"distance": 7165
},
{
"time": {
"arrival": "2023-12-06T07:24:13Z",
"departure": "2023-12-06T07:25:13Z"
},
"load": [
3
],
"activities": [
{
"jobId": "Job_24",
"type": "delivery",
"location": {
"lat": 52.197989,
"lng": 21.015325
},
"time": {
"start": "2023-12-06T07:24:13Z",
"end": "2023-12-06T07:25:13Z"
}
}
],
"location": {
"lat": 52.197989,
"lng": 21.015325
},
"distance": 7619
},
{
"time": {
"arrival": "2023-12-06T07:26:00Z",
"departure": "2023-12-06T07:27:00Z"
},
"load": [
2
],
"activities": [
{
"jobId": "Job_28",
"type": "delivery",
"location": {
"lat": 52.198854,
"lng": 21.012977
},
"time": {
"start": "2023-12-06T07:26:00Z",
"end": "2023-12-06T07:27:00Z"
}
}
],
"location": {
"lat": 52.198854,
"lng": 21.012977
},
"distance": 7858
},
{
"time": {
"arrival": "2023-12-06T07:27:50Z",
"departure": "2023-12-06T07:28:50Z"
},
"load": [
1
],
"activities": [
{
"jobId": "Job_29",
"type": "delivery",
"location": {
"lat": 52.199743,
"lng": 21.01647
},
"time": {
"start": "2023-12-06T07:27:50Z",
"end": "2023-12-06T07:28:50Z"
}
}
],
"location": {
"lat": 52.199743,
"lng": 21.01647
},
"distance": 8170
},
{
"time": {
"arrival": "2023-12-06T07:30:10Z",
"departure": "2023-12-06T07:31:10Z"
},
"load": [
0
],
"activities": [
{
"jobId": "Job_26",
"type": "delivery",
"location": {
"lat": 52.200472,
"lng": 21.014328
},
"time": {
"start": "2023-12-06T07:30:10Z",
"end": "2023-12-06T07:31:10Z"
}
}
],
"location": {
"lat": 52.200472,
"lng": 21.014328
},
"distance": 8554
},
{
"time": {
"arrival": "2023-12-06T07:36:20Z",
"departure": "2023-12-06T07:36:20Z"
},
"load": [
0
],
"activities": [
{
"jobId": "arrival",
"type": "arrival",
"location": {
"lat": 52.213985,
"lng": 21.004046
},
"time": {
"start": "2023-12-06T07:36:20Z",
"end": "2023-12-06T07:36:20Z"
}
}
],
"location": {
"lat": 52.213985,
"lng": 21.004046
},
"distance": 11002
}
],
"statistic": {
"cost": 5525.36,
"distance": 11002,
"duration": 2180,
"times": {
"driving": 1580,
"serving": 600,
"waiting": 0,
"stopping": 0,
"break": 0
}
},
"shiftIndex": 0
}
]
}次のステップ
26 日前の更新