Here api 在这里查找具有单个拾取和多个衰减的序列。下一次提货必须在现有交货完成后进行
我得到了一个完成3次交付的场景 交付1-1次取货(P1)和3次卸货(D11、D12、D13) 交付2-1次取货(P2)和2次卸货(D21、D22) 交付3次-1次取货(P3)和3次卸货(D31、D32、D33) 它应提供一条路线,以便在现有交付完成后进行下一次取货Here api 在这里查找具有单个拾取和多个衰减的序列。下一次提货必须在现有交货完成后进行,here-api,Here Api,我得到了一个完成3次交付的场景 交付1-1次取货(P1)和3次卸货(D11、D12、D13) 交付2-1次取货(P2)和2次卸货(D21、D22) 交付3次-1次取货(P3)和3次卸货(D31、D32、D33) 它应提供一条路线,以便在现有交付完成后进行下一次取货 如果P2作为第一点,那么P1或P3必须在D21和D22之后出现。这里的下车顺序可以是任何内容。这里的旅游计划API应该能够解决您的问题。在这里,您可以通过收货和送货来定义作业,API为您提供了一个优化的流程 您还可以定义要考虑的车队属
如果P2作为第一点,那么P1或P3必须在D21和D22之后出现。这里的下车顺序可以是任何内容。这里的旅游计划API应该能够解决您的问题。在这里,您可以通过收货和送货来定义作业,API为您提供了一个优化的流程 您还可以定义要考虑的车队属性 请求示例:
{
"id": "7f3423c2-784a-4983-b472-e14107d5a54a",
"plan": {
"jobs": [
{
"id": "7f3423c2-784a-4983-b472-e14107d5a54a",
"places": {
"pickup": {
"times": [
[
"2019-07-04T08:00:00Z",
"2019-07-04T10:00:00Z"
],
[
"2019-07-04T16:00:00Z",
"2019-07-04T18:00:00Z"
]
],
"location": {
"lat": 52.53088,
"lng": 13.38471
},
"duration": 180,
"tag": {
"tag": "some tag"
}
},
"delivery": {
"times": [
[
"2019-07-04T08:00:00Z",
"2019-07-04T10:00:00Z"
],
[
"2019-07-04T16:00:00Z",
"2019-07-04T18:00:00Z"
]
],
"location": {
"lat": 52.53088,
"lng": 13.38471
},
"duration": 180,
"tag": {
"tag": "some tag"
}
}
},
"demand": [
10,
5
],
"skills": [
"fridge"
]
}
],
"relations": [
{
"type": "sequence",
"jobs": [
"departure",
"job1",
"break",
"job2"
],
"vehicleId": "7f3423c2-784a-4983-b472-e14107d5a54a"
}
]
},
"fleet": {
"types": [
{
"id": "7f3423c2-784a-4983-b472-e14107d5a54a",
"profile": {
"tag": "big truck"
},
"costs": {
"fixed": 22,
"distance": 0.0001,
"time": 0.0048
},
"shifts": [
{
"start": {
"time": "2019-07-04T00:00:00Z",
"location": {
"lat": 52.53088,
"lng": 13.38471
}
},
"end": {
"time": "2019-07-04T00:00:00Z",
"location": {
"lat": 52.53088,
"lng": 13.38471
}
},
"breaks": [
{
"times": [
[
"2019-07-04T08:00:00Z",
"2019-07-04T10:00:00Z"
],
[
"2019-07-04T16:00:00Z",
"2019-07-04T18:00:00Z"
]
],
"duration": 180,
"location": {
"lat": 52.53088,
"lng": 13.38471
}
}
]
}
],
"capacity": [
10,
5
],
"skills": [
"fridge"
],
"limits": {
"maxDistance": 20000,
"shiftTime": 21600
},
"amount": 1
}
],
"profiles": [
{
"name": {
"tag": "big truck"
},
"departureTime": "2019-07-04T00:00:00Z",
"avoidRoutes": {
"features": [
"tollRoad"
]
},
"type": "car"
}
]
},
"configuration": {
"optimizations": {
"traffic": "liveOrHistorical",
"waitingTime": {
"reduce": true,
"bufferTime": 15
}
}
}
}
答复:
{
"problemId": "7f3423c2-784a-4983-b472-e14107d5a54a",
"statistic": {
"cost": 1024,
"distance": 32000,
"duration": 180,
"times": {
"driving": 3600,
"serving": 600,
"waiting": 180,
"break": 1200
}
},
"tours": [
{
"vehicleId": "7f3423c2-784a-4983-b472-e14107d5a54a",
"typeId": "7f3423c2-784a-4983-b472-e14107d5a54a",
"stops": [
{
"location": {
"lat": 52.53088,
"lng": 13.38471
},
"time": {
"arrival": "2019-07-04T00:00:00Z",
"departure": "2019-07-04T00:00:00Z"
},
"load": [
10,
5
],
"activities": [
{
"jobId": "7f3423c2-784a-4983-b472-e14107d5a54a",
"jobTag": {
"tag": "some tag"
},
"type": "delivery",
"location": {
"lat": 52.53088,
"lng": 13.38471
},
"time": {
"start": "2019-07-04T00:00:00Z",
"end": "2019-07-04T00:00:00Z"
}
}
]
}
],
"statistic": {
"cost": 1024,
"distance": 32000,
"duration": 180,
"times": {
"driving": 3600,
"serving": 600,
"waiting": 180,
"break": 1200
}
}
}
],
"unassigned": [
{
"jobId": "7f3423c2-784a-4983-b472-e14107d5a54a",
"reasons": [
{
"code": 1,
"description": "cannot serve required skill"
}
]
}
]
}