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 zawiłości i pełnego dostosowania parametrów kosztów. (Informacje o tym, jak w pełni dostosować różne cele, znajdziesz w sekcji „cost model ”).

Gdy ustawisz ShipmentModel.objectives, zastąpią one całkowicie model kosztów, dlatego są niezgodne z dotychczasowymi kosztami. Każdy Objective jest powiązany z liczbą predefiniowanych kosztów dotyczących pojazdów, przesyłek lub atrybutów przejścia.

Gdy 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. Wszystkie inne tryby rozwiązywania zwrócą rozwiązane żądanie.

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 żądania ShipmentModel.objectives

Zanim wyślesz żądanie, wykonaj te czynności:

  • Upewnij się, że masz skonfigurowane domyślne uwierzytelnianie aplikacji zgodnie z opisem w sekcji Korzystanie z OAuth.
  • Ustaw PROJECT_NUMBER_OR_ID na numer lub identyfikator projektu w chmurze.

    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 żądania TRANSFORM_AND_RETURN_REQUEST

Zanim wyślesz żądanie, wykonaj te czynności:

  • Upewnij się, że masz skonfigurowane domyślne uwierzytelnianie aplikacji zgodnie z opisem w sekcji Korzystanie z OAuth.
  • Ustaw PROJECT_NUMBER_OR_ID na numer lub identyfikator projektu w chmurze.

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