Sie müssen an Abhol- und Lieferorten nicht umdrehen.

Standardmäßig können Fahrzeuge einen Abhol- oder Lieferort aus jeder Richtung erreichen und dann in jede Richtung weiterfahren. In einigen Fällen ist es daher erforderlich, am Zielort einen U-Turn zu machen, was aufgrund der Fahrzeuggröße, der Verkehrsschilder am Standort oder der üblichen Verkehrsbedingungen schwierig oder unmöglich sein kann.

Wenn Sie verhindern möchten, dass Fahrzeuge zwischen Ankunft und Abfahrt an einem bestimmten Abhol- oder Lieferort die Richtung ändern, können Sie für diesen Ort avoid_u_turns auf „wahr“ setzen. Bei dieser Einstellung fährt das Fahrzeug mit derselben Fahrtrichtung zum Ziel und wieder zurück, sodass kein Umkehren erforderlich ist. Bei zweispurigen Straßen berücksichtigt der Solver beide Richtungen und wählt eine als Teil der Routenoptimierung aus.

Sie können auch side_of_road auf „wahr“ setzen, um eine Route zu erhalten, bei der das Fahrzeug auf der dem Wegpunkt am nächsten gelegenen Straßenseite ankommt und abfährt. In diesem Fall ändert das Fahrzeug auch zwischen Ankunft und Abfahrt nicht die Fahrtrichtung. Sie können sowohl side_of_road als auch avoid_u_turns auf „wahr“ setzen, um dasselbe Ergebnis zu erzielen. Weitere Informationen finden Sie unter Interaktion mit anderen Elementen.

In der Praxis sollte avoid_u_turns verwendet werden, wenn es sicher ist, die Straße zu überqueren, um zum Wegpunkt zu gelangen. Verwenden Sie side_of_road, wenn das Überqueren nicht empfohlen oder nicht möglich ist.

Beispiel: OptimizeTours-Anfrage mit avoid_u_turns stellen

OptimizeTours-Anfragen können entweder mit REST oder gRPC gestellt werden.

Ersetzen Sie vor dem Senden einer Anfrage die folgenden Parameter durch Werte, die für Ihre Umgebung geeignet sind:

  • 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 OptimizeTours-Anfrage an die Routenoptimierungs-API gesendet und eine Antwort wird synchron empfangen.

    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
                },
                "avoidUTurns": true
              }
            ],
            "deliveries": [
              {
                "arrivalLocation": {
                  "latitude": 37.42421503206021,
                  "longitude": -122.09526063135228
                },
                "avoidUTurns": true
              }
            ]
          }
        ],
        "vehicles": [
          {
            "travelMode": "DRIVING",
            "costPerKilometer": 1.0
          }
        ],
      }
    }
    EOM

Sobald die Anfrage abgeschlossen ist, erhalten Sie eine Antwort.

Interaktion mit anderen Funktionen

  • avoid_u_turns kann mit side_of_road = true verwendet werden. In diesem Fall werden U-Turns vermieden, aber der Solver wählt eine Route aus, bei der sich das Fahrzeug auf derselben Straßenseite wie der Wegpunkt befindet, ähnlich wie bei der alleinigen Einstellung von side_of_road = true.
  • Wenn avoid_u_turns = true für eine bestimmte Besuchsanfrage gilt, ist das Feld injected_solution_location_token in der entsprechenden Antwort für ShipmentRoute.Visit festgelegt. Die genaue Bedeutung dieses Werts ist ein Implementierungsdetail, aber er codiert die Informationen zur Seite der Straße, die vom Solver ausgewählt wurde.
  • Wenn Sie eine ShipmentRoute.Visit als Teil der Eingabeanfrage verwenden und diese ShipmentRoute.Visit einer VisitRequest entspricht, in der avoid_u_turns = true, muss ShipmentRoute.Visit eine injected_solution_location_token enthalten, die zuvor vom Solver zurückgegeben wurde.

Beschränkungen

Die Vermeidung von U-Wenden erfolgt nach dem Best-Effort-Prinzip. In bestimmten Situationen kann die Route jedoch weiterhin U-Turns enthalten:

  • avoid_u_turns funktioniert nur mit Mobilitätsoptionen, die side_of_road unterstützen. Insbesondere wird sie nicht für den WALKING-Reisemodus unterstützt.
  • avoid_u_turns kann nicht für Abholungen und Lieferungen verwendet werden, bei denen Ankunft und Abfahrt nicht am selben Ort sind.
  • Wenn eine Abholung oder Lieferung in einer Sackgasse erfolgt, müssen Sie umkehren, um die Straße zu verlassen.
  • Mit dieser Funktion sollen Umkehren an Abhol- und Lieferorten vermieden werden. U-Turns zwischen Wegpunkten werden nicht vermieden.
  • Sehr scharfe Kurven zu einer anderen Straße gelten nicht als Kehrtwende und werden in der Regel nicht vermieden.

Während der Entwicklungsphase dieser Funktion gelten zusätzliche Einschränkungen. Wir gehen davon aus, dass sie mit der Weiterentwicklung der Funktion aufgehoben werden.