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. Ułatwiają one deweloperom rozpoczęcie korzystania z interfejsu Route Optimization API przed zapoznaniem się z bardziej złożonymi kwestiami i pełnym dostosowaniem parametrów kosztów. (Informacje o pełnym dostosowaniu różnych celów 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, dostaw 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 zostanie zwrócone 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"
      }
    }