Ziele

Ziele sind Parameter, mit denen gängige Optimierungsziele wie kürzeste Fahrstrecke oder ‑dauer, pünktliche Lieferungen oder die Verteilung der Lasten auf die Fahrer vordefiniert werden. Sie soll Entwicklern den Einstieg in die Route Optimization API erleichtern, bevor sie sich mit den Feinheiten und der vollständigen Anpassung von Kostenparametern vertraut machen.

Wenn sie festgelegt sind, überschreiben die ShipmentModel.objectives das Kostenmodell vollständig. Sie sind daher nicht mit vorhandenen Kosten kompatibel. Jedes Objective entspricht einer Reihe vordefinierter Kosten für Fahrzeuge, Sendungen oder Übergangsattribute.

Wenn Sie den Lösungsmodus TRANSFORM_AND_RETURN_REQUEST angeben, wird die Anfrage nicht gelöst, sondern nur validiert und mit Kosten entsprechend den angegebenen Zielvorhaben gefüllt. Die geänderte Anfrage wird als OptimizeToursResponse.processed_request zurückgegeben. Bei allen anderen Lösungsmodi wird die gelöste Anfrage zurückgegeben.

Der TRANSFORM_AND_RETURN_REQUEST-Lösungsmodus ist nur für OptimizeTours-Anfragen gültig und nicht für andere Route Optimization API-Anfragen verfügbar.

Beispiel: ShipmentModel.objectives-Anfrage stellen

Führen Sie vor dem Stellen einer Anfrage die folgenden Schritte aus:

  • Achten Sie darauf, dass Sie Standardanmeldedaten für Anwendungen wie unter OAuth verwenden beschrieben konfiguriert haben.
  • Legen Sie PROJECT_NUMBER_OR_ID auf Ihre Cloud-Projektnummer oder -ID fest.

    Mit dem folgenden Befehl wird eine OptimizeToursRequest an die Route Optimization API gesendet, die eine OptimizeToursResponse zurückgibt.

    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

Beispiel: TRANSFORM_AND_RETURN_REQUEST-Anfrage stellen

Führen Sie vor dem Stellen einer Anfrage die folgenden Schritte aus:

  • Achten Sie darauf, dass Sie Standardanmeldedaten für Anwendungen wie unter OAuth verwenden beschrieben konfiguriert haben.
  • Legen Sie PROJECT_NUMBER_OR_ID auf Ihre Cloud-Projektnummer oder -ID fest.

    Mit dem folgenden Befehl wird eine OptimizeToursRequest an die Route Optimization API gesendet, die eine OptimizeToursResponse mit dem Feld ProcessedRequest zurückgibt.

    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
    Der vorherige Befehl gibt eine ähnliche Antwort wie die folgende zurück.
    {
      "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"
      }
    }