目標

目標是預先定義常見最佳化目標的參數,例如最短行駛距離或行程時間、準時送達、司機之間的負載平衡。這項功能旨在讓開發人員更輕鬆地導入路線最佳化 API,無須先瞭解費用參數的細節和完整自訂設定。

設定後,ShipmentModel.objectives 會完全覆寫成本模式,因此與先前的費用不相容。每個 Objective 都會對應至多個預先定義的車輛、運送或轉換屬性費用。

指定 TRANSFORM_AND_RETURN_REQUEST 解題模式時,系統不會解決要求,只會驗證並填入與指定目標相對應的成本。系統會以 OptimizeToursResponse.processed_request 的形式傳回已修改的要求。所有其他解決模式都會傳回已解決的要求。

TRANSFORM_AND_RETURN_REQUEST 解決模式僅適用於 OptimizeTours 要求,不適用於其他 Route Optimization API 要求。

範例:提出 ShipmentModel.objectives 要求

提出申請前,請先完成下列步驟:

  • 請確認您已按照「使用 OAuth」一節所述,設定應用程式預設憑證
  • PROJECT_NUMBER_OR_ID 設為 Cloud 專案編號或 ID。

    以下指令會將 OptimizeToursRequest 傳送至 Route Optimization API,並傳回 OptimizeToursResponse

    curl -X POST 'https://routeoptimization.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID:optimizeTours' \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    --data @- <<EOM
    {
      "model": {
        "shipments": [
          {
            "pickups": [
              {
                "arrivalLocation": {
                  "latitude": 37.42506261000996,
                  "longitude": -122.09535511930135
                }
              }
            ],
            "deliveries": [
              {
                "arrivalLocation": {
                  "latitude": 37.42421503206021,
                  "longitude": -122.09526063135228
                }
              }
            ]
          }
        ],
        "vehicles": [
          {
            "travelMode": "DRIVING",
          }
        ],
        "objectives": [
          {
            "type": "MIN_TRAVEL_TIME"
          }
        ],
      }
    }
    EOM

範例:提出 TRANSFORM_AND_RETURN_REQUEST 要求

提出申請前,請先完成下列步驟:

  • 請確認您已按照「使用 OAuth」一節所述,設定應用程式預設憑證
  • PROJECT_NUMBER_OR_ID 設為 Cloud 專案編號或 ID。

    下列指令會將 OptimizeToursRequest 傳送至 Route Optimization API,該 API 會傳回設定 ProcessedRequest 欄位的 OptimizeToursResponse

    curl -X POST 'https://routeoptimization.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID:optimizeTours' \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    --data @- <<EOM
    {
      "model": {
        "shipments": [
          {
            "pickups": [
              {
                "arrivalLocation": {
                  "latitude": 37.42506261000996,
                  "longitude": -122.09535511930135
                }
              }
            ],
            "deliveries": [
              {
                "arrivalLocation": {
                  "latitude": 37.42421503206021,
                  "longitude": -122.09526063135228
                }
              }
            ]
          }
        ],
        "vehicles": [
          {
            "travelMode": "DRIVING",
          }
        ],
        "objectives": [
          {
            "type": "MIN_TRAVEL_TIME"
          }
        ]
      },
      "solvingMode": "TRANSFORM_AND_RETURN_REQUEST"
    }
    EOM
    上述指令會產生類似以下的回應。
    {
      "processedRequest": {
        "model": {
          "shipments": [
            {
              "pickups": [
                {
                  "arrivalLocation": {
                    "latitude": 37.425062610009959,
                    "longitude": -122.09535511930135
                  }
                }
              ],
              "deliveries": [
                {
                  "arrivalLocation": {
                    "latitude": 37.424215032060211,
                    "longitude": -122.09526063135228
                  }
                }
              ]
            }
          ],
          "vehicles": [
            {
              "travelMode": "DRIVING",
              "costPerHour": 30,
              "costPerTraveledHour": 330,
              "costPerKilometer": 0.2
            }
          ],
          "objectives": [
            {
              "type": "MIN_TRAVEL_TIME"
            }
          ]
        },
        "solvingMode": "TRANSFORM_AND_RETURN_REQUEST"
      }
    }