Ziele

Ziele sind Parameter, mit denen häufige Optimierungsziele vordefiniert werden, z. B. kürzeste Fahrstrecke oder -dauer, pünktliche Lieferungen oder Lastenverteilung zwischen Fahrern. Sie soll es Entwicklern erleichtern, die Routenoptimierungs-API einzurichten, bevor sie sich mit den komplexeren Funktionen und der vollständigen Anpassung von Kostenparametern vertraut machen.

Wenn sie festgelegt ist, überschreibt ShipmentModel.objectives das Kostenmodell vollständig und ist daher nicht mit bereits vorhandenen Kosten kompatibel. Jedem Objective ist eine Reihe vordefinierter Kosten für Fahrzeuge, Sendungen oder Übergangsattribute zugeordnet.

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

Der TRANSFORM_AND_RETURN_REQUEST-Lösungsmodus ist nur für OptimizeTours-Anfragen gültig und nicht für andere Anfragen an die Routenoptimierungs-API.

Beispiel: ShipmentModel.objectives-Anfrage stellen

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

  • Die Standardanmeldedaten für Anwendungen müssen wie unter OAuth verwenden beschrieben konfiguriert sein.
  • 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 Senden einer Anfrage die folgenden Schritte aus:

  • Die Standardanmeldedaten für Anwendungen müssen wie unter OAuth verwenden beschrieben konfiguriert sein.
  • 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 festgelegten 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 führt zu einer ähnlichen Antwort wie die folgende.
    {
      "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"
      }
    }