Ziele

Zielvorhaben sind Parameter, mit denen allgemeine Optimierungsziele wie die kürzeste Reisestrecke oder ‑dauer, pünktliche Lieferungen oder die Verteilung der Lasten zwischen Fahrern vordefiniert werden. Sie sollen Entwicklern den Einstieg in die Route Optimization API erleichtern, bevor sie sich mit den Feinheiten und der vollständigen Anpassung von Kostenparametern vertraut machen. Unter "cost model " erfahren Sie, wie Sie Ihre vielfältigen Zielvorhaben vollständig anpassen können.

Wenn ShipmentModel.objectives festgelegt ist, wird das Kostenmodell vollständig überschrieben. Daher ist es nicht mit bereits vorhandenen Kosten kompatibel. Jedes Objective wird einer Reihe vordefinierter Kosten für Fahrzeuge, Sendungen oder Übergangsattribute zugeordnet.

Wenn Sie den TRANSFORM_AND_RETURN_REQUEST Lösungsmodus 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 gelöste Anfrage zurückgegeben.

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

Beispiel: ShipmentModel.objectives-Anfrage stellen

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

  • Stellen Sie sicher, dass Sie die Standardanmeldedaten für Anwendungen konfiguriert haben, wie unter OAuth verwenden beschrieben.
  • 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:

  • Stellen Sie sicher, dass Sie die Standardanmeldedaten für Anwendungen konfiguriert haben, wie unter OAuth verwenden beschrieben.
  • 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 ProcessedRequest festgelegten Feld 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 erzeugt eine ähnliche 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"
      }
    }