Here api 在这里查找具有单个拾取和多个衰减的序列。下一次提货必须在现有交货完成后进行

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为您提供了一个优化的流程 您还可以定义要考虑的车队属

我得到了一个完成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为您提供了一个优化的流程

您还可以定义要考虑的车队属性

请求示例:

{
  "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"
        }
      ]
    }
  ]
}