ガイドAPIリファレンス
ガイド

ソリューション

Solutionエンティティは、車両ルート検索問題のソリューションを表し、次の3つの重要な部分で構成されます:statistictoursunassigned jobs

statistic

statisticオブジェクトは1つまたは複数のツアーの統計を表し、次のプロパティで構成されます。

  • cost:小数点以下3桁に四捨五入された抽象単位の合計コスト

    "cost": 54.459

  • distance:総走行距離 (メートル単位)

    "distance": 35277

  • duration:所要時間 (秒単位)

    duration": 5286

  • consumption:推定燃料消費量です。単位タイプは燃料タイプに対応しており、CNGの場合の単位はキログラム、ガソリンの場合の単位はリットルになります。

    consumption: 6.3893

  • co2Emission:そのツアーに対する、キログラム単位の推定CO₂排出量

    co2Emission: 17.232999999999997

  • __intraStopDistance:__クラスタリングでは、すべての停留所内のアクティビティ間の合計距離(メートル単位)と停留所までの往復距離を加算したものです。すべての停止位置がすべてのアクティビティ位置と等しい場合(たとえば、停止に1つのアクティビティのみが含まれる場合)、この値は0になります。

    intraStopDistance: 1024

  • 時間:運転、ジョブの処理、タイムウィンドウの開始、停止、休憩、および停止内のアクティビティ間の歩行に費やされた時間です。

    {
      "times": {
        "driving": 5106,
        "serving": 180,
        "waiting": 0,
        "stopping": 0,
        "break": 0,
        "intraStop": 0
      }
    }

ソリューションの統計情報のdurationプロパティは、その特定のソリューションに対するすべてのツアーの所要時間の合計を表します。

ツアーリスト

ツアーリストの各項目には、使用車両と割り当てられたジョブに関する詳細情報が表示されます。

  • typeId:車両タイプIDを指定します

    "typeId": "myVehicle"

  • vehicleId:使用車両の具体的なIDを指定します。これは、typeIdと連番をアンダースコアで区切ったものです

    vehicleId": "myVehicle_1"

  • stops:停車地のリストを指定します

  • statistic:ツアーの統計情報を指定します

  • shiftIndex:ツアー中に使用する車両シフトインデックスを指定します

stop

stopは、特定の時間に特定の場所で実行されるアクティビティのリストを指定します。次のプロパティで構成されます。

  • location:緯度/経度で表される停車地

    "location": {"lat": 52.52568, "lng": 13.45345}

  • time:停車地の到着予定時刻と出発予定時刻を指定します

    {
      "time": {
        "arrival": "2020-07-04T09:19:01Z",
        "departure": "2020-07-04T09:19:01Z"
      }
    }
  • load:停車地出発後の車両積載量を指定します

    "load": [1]

  • distance:ツアー開始からの総走行距離 (メートル単位) を指定します

  • intraStopDistance:この停止位置のアクティビティと停止位置までの往復の合計距離(メートル単位)を指定します。停止位置が停止位置のすべてのアクティビティ位置と等しい場合、この値は次のようになります。 0です。

  • activities:停車地で実行するアクティビティのリストを指定します

📘

「」 timesソリューションでは、問題の定式化で使用された時間オフセットに関係なく、結果は常にUTCで返されます。

activity

一般的に、activityは特定の場所と時間に実行が予定されているタスクを指定します。次のプロパティで構成されます。

  • jobId:ジョブまたはマーカー (休憩、出発、到着など) のID

    jobId": "myJob"

  • type:アクティビティタイプを指定します。出発、到着、休憩、集荷、配達のいずれかの値を指定できます

    "type": "delivery"

  • jobTag (任意):対応するジョブの場所に指定されたユーザー定義の値

    "jobTag": "place 1"

  • location (任意):緯度/経度またはカスタムIDで表されるアクティビティの場所。親の停車地で定義された場所と同じ場合は省略されます

    "location": {"lat": 52.52568, "lng": 13.45345} または "location": {"id": "uniqueLocationId""}

  • time(オプション):アクティビティの予定到着時刻、開始時刻、終了時刻を指定します。「」 arrival時間は車両の /personアクティビティの場所に到着しますが、 startおよび endアクティビティ自体がいつ開始し、終了するかを示します。停車地にアクティビティが1つしかない場合は省略されます

    {
      "time": {
        "arrival": "2020-07-04T10:00:00Z",
        "start": "2020-07-04T10:00:00Z",
        "end": "2020-07-04T10:03:00Z"
      }
    }
    📘

    「」 timesソリューションでは、問題の定式化で使用された時間オフセットに関係なく、結果は常にUTC形式で返されます。

unassigned jobs

任意プロパティの未割り当てジョブリストには、特定の制約が原因で割り当てができないジョブが表示されます。各項目は、ジョブIDと未割り当ての理由から構成されます。

{
  "unassigned": [
      {
        "jobId": "myJob",
        "reasons": [
          {
            "code": "MAX_DISTANCE_CONSTRAINT",
            "description": "cannot be assigned due to max distance constraint of vehicle"
          }
        ]
      }
  ]
}

{
  "statistic": {
    "cost": 54.459916,
    "distance": 35277,
    "duration": 5286,
    "times": {
      "driving": 5106,
      "serving": 180,
      "waiting": 0,
      "stopping": 0,
      "break": 0,
      "intraStop": 0
    },
    "intraStopDistance": 0
  },
  "tours": [
    {
      "vehicleId": "myVehicle_1",
      "typeId": "myVehicle",
      "stops": [
        {
          "location": {"lat": 52.52568, "lng": 13.45345},
          "time": {
            "arrival": "2020-07-04T09:19:01Z",
            "departure": "2020-07-04T09:19:01Z"
          },
          "load": [1],
          "activities": [
            {
              "jobId": "departure",
              "type": "departure",
              "time": {
                "arrival": "2020-07-04T09:19:01Z",
                "start": "2020-07-04T09:19:01Z",
                "end": "2020-07-04T09:19:01Z"
              }
            }
          ],
          "distance": 0,
          "intraStopDistance": 0
        },
        {
          "location": {"lat": 52.46642, "lng": 13.28124},
          "time": {
            "arrival": "2020-07-04T10:00:00Z",
            "departure": "2020-07-04T10:03:00Z"
          },
          "load": [0],
          "activities": [
            {
              "jobId": "myJob",
              "type": "delivery",
              "time": {
                "arrival": "2020-07-04T10:00:00Z",
                "start": "2020-07-04T10:00:00Z",
                "end": "2020-07-04T10:03:00Z"
              }
            }
          ],
          "distance": 16035,
          "intraStopDistance": 0
        },
        {
          "location": {"lat": 52.52568, "lng": 13.45345},
          "time": {
            "arrival": "2020-07-04T10:47:07Z",
            "departure": "2020-07-04T10:47:07Z"
          },
          "load": [0],
          "activities": [
            {
              "jobId": "arrival",
              "type": "arrival",
              "time": {
                "arrival": "2020-07-04T10:47:07Z",
                "start": "2020-07-04T10:47:07Z",
                "end": "2020-07-04T10:47:07Z"
              }
            }
          ],
          "distance": 31943,
          "intraStopDistance": 0
        }
      ],
      "statistic": {
        "cost": 54.459916,
        "distance": 35277,
        "duration": 5286,
        "times": {
          "driving": 5106,
          "serving": 180,
          "waiting": 0,
          "stopping": 0,
          "break": 0,
          "intraStop": 0
        },
        "intraStopDistance": 0
      },
      "shiftIndex": 0
    }
  ]
}