目標

目標是預先定義的常見最佳化目標參數,例如最短的行車距離或時間、準時送達、平衡駕駛員之間的負載。這項功能旨在協助開發人員更輕鬆地開始使用路線最佳化 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,並傳回設定 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"
      }
    }