Cele

Cele to parametry, które wstępnie definiują typowe cele optymalizacji, takie jak najkrótsza odległość lub czas podróży, dostawy na czas czy równoważenie obciążenia między kierowcami. Ma to ułatwić deweloperom rozpoczęcie korzystania z interfejsu Route Optimization API przed poznaniem zaawansowanych funkcji i pełnej personalizacji parametrów kosztów.

Gdy są ustawione, ShipmentModel.objectives całkowicie zastępują model kosztów, dlatego są niezgodne z wcześniej ustalonymi kosztami. Każda wartość Objective odpowiada liczbie wstępnie zdefiniowanych kosztów pojazdów, przesyłek lub atrybutów przejścia.

Jeśli określisz tryb rozwiązywania TRANSFORM_AND_RETURN_REQUEST, żądanie nie zostanie rozwiązane, a jedynie zweryfikowane i wypełnione kosztami odpowiadającymi podanym celom. Zmodyfikowane żądanie jest zwracane jako OptimizeToursResponse.processed_request. W przypadku wszystkich pozostałych trybów rozwiązywania zwracana jest rozwiązana prośba.

Tryb rozwiązywania TRANSFORM_AND_RETURN_REQUEST jest prawidłowy tylko w przypadku żądań OptimizeTours i nie jest dostępny w przypadku innych żądań interfejsu Route Optimization API.

Przykład: wysyłanie prośby ShipmentModel.objectives

Zanim wyślesz prośbę, wykonaj te czynności:

  • Upewnij się, że masz skonfigurowane domyślne dane logowania aplikacji zgodnie z opisem w artykule Korzystanie z OAuth.
  • Ustaw PROJECT_NUMBER_OR_ID na numer lub identyfikator projektu Cloud.

    To polecenie wysyła OptimizeToursRequest do interfejsu Route Optimization API, który zwraca 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

Przykład: wysyłanie prośby TRANSFORM_AND_RETURN_REQUEST

Zanim wyślesz prośbę, wykonaj te czynności:

  • Upewnij się, że masz skonfigurowane domyślne dane logowania aplikacji zgodnie z opisem w artykule Korzystanie z OAuth.
  • Ustaw PROJECT_NUMBER_OR_ID na numer lub identyfikator projektu Cloud.

    To polecenie wysyła żądanie OptimizeToursRequest do interfejsu Route Optimization API, który zwraca odpowiedź OptimizeToursResponse z ustawionym polem ProcessedRequest.

    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
    Poprzednie polecenie zwróci odpowiedź podobną do tej poniżej.
    {
      "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"
      }
    }