Mục tiêu

Mục tiêu là các thông số xác định trước các mục tiêu tối ưu hoá thường gặp, chẳng hạn như khoảng cách hoặc thời gian di chuyển ngắn nhất, giao hàng đúng giờ, cân bằng tải giữa các tài xế. Mục đích của việc này là giúp nhà phát triển dễ dàng sử dụng Route Optimization API trước khi tìm hiểu về các thông số phức tạp và khả năng tuỳ chỉnh đầy đủ của các thông số về chi phí.

Khi được đặt, ShipmentModel.objectives sẽ ghi đè hoàn toàn mô hình chi phí, do đó, chúng không tương thích với các chi phí hiện có. Mỗi Objective tương ứng với một số chi phí được xác định trước cho xe, lô hàng hoặc thuộc tính chuyển đổi.

Khi chỉ định chế độ giải TRANSFORM_AND_RETURN_REQUEST, yêu cầu sẽ không được giải quyết mà chỉ được xác thực và điền các chi phí tương ứng với các mục tiêu đã cho. Yêu cầu đã sửa đổi được trả về dưới dạng OptimizeToursResponse.processed_request. Tất cả các chế độ giải khác sẽ trả về yêu cầu đã giải.

Chế độ giải TRANSFORM_AND_RETURN_REQUEST chỉ hợp lệ cho các yêu cầu OptimizeTours và không dùng được cho các yêu cầu khác của Route Optimization API.

Ví dụ: Tạo yêu cầu ShipmentModel.objectives

Trước khi đưa ra yêu cầu, hãy hoàn tất các bước sau:

  • Đảm bảo bạn đã định cấu hình Thông tin xác thực mặc định của ứng dụng như mô tả trong phần Sử dụng OAuth.
  • Đặt PROJECT_NUMBER_OR_ID thành số hoặc mã dự án trên Cloud.

    Lệnh sau đây sẽ gửi một OptimizeToursRequest đến Route Optimization API (API Tối ưu hoá tuyến đường) và API này sẽ trả về một 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

Ví dụ: Tạo yêu cầu TRANSFORM_AND_RETURN_REQUEST

Trước khi đưa ra yêu cầu, hãy hoàn tất các bước sau:

  • Đảm bảo bạn đã định cấu hình Thông tin xác thực mặc định của ứng dụng như mô tả trong phần Sử dụng OAuth.
  • Đặt PROJECT_NUMBER_OR_ID thành số hoặc mã dự án trên Cloud.

    Lệnh sau đây sẽ gửi một OptimizeToursRequest đến API Tối ưu hoá tuyến đường. API này sẽ trả về một OptimizeToursResponse có trường ProcessedRequest được đặt.

    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
    Lệnh trước đó sẽ tạo ra một phản hồi tương tự như sau.
    {
      "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"
      }
    }