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. (Więcej informacji o pełnym dostosowywaniu różnych celów znajdziesz w sekcji „cost model ”).

Po ustawieniu ShipmentModel.objectives całkowicie nadpisuje model kosztów, dlatego jest niezgodny z wcześniej istniejącymi kosztami. Każdy element Objective odnosi się do wielu predefiniowanych kosztów pojazdów, przesyłek lub atrybutów przejścia.

Po określeniu trybu rozwiązywania TRANSFORM_AND_RETURN_REQUEST żądanie nie jest rozwiązywane, a jedynie weryfikowane i uzupełniane kosztami odpowiadającymi podanym celom. Zmodyfikowane żądanie jest zwracane jako OptimizeToursResponse.processed_request. W przypadku wszystkich innych trybów rozwiązywania problemów 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 ShipmentModel.objectives prośby

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 TRANSFORM_AND_RETURN_REQUEST prośby

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 do interfejsu Route Optimization API żądanie OptimizeToursRequest, które 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"
      }
    }