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

Standardmäßig können Fahrzeuge aus jeder Richtung an einem Abhol- oder Lieferort ankommen und in jede Richtung wieder abfahren. In einigen Fällen wird das Fahrzeug dadurch gezwungen, am Zielort zu wenden, was aufgrund der Fahrzeuggröße, der Verkehrszeichen am Ort oder der üblichen Verkehrsbedingungen schwierig oder unmöglich sein kann.

Damit Fahrzeuge zwischen Ankunft und Abfahrt an einem bestimmten Abhol- oder Lieferort nicht die Richtung ändern, können Sie avoid_u_turns für diesen Ort auf „true“ setzen. Bei dieser Einstellung kommt das Fahrzeug mit derselben Fahrtrichtung am Zielort an und fährt auch wieder ab. So wird eine Kehrtwende vermieden. Bei zweispurigen Straßen werden beide Richtungen berücksichtigt und eine davon als Teil der Routenoptimierung ausgewählt.

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

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 wird 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:

  • 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 OptimizeTours-Anfrage an die Route Optimization API gesendet und eine Antwort 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 zusammen mit side_of_road = true verwendet werden. In diesem Fall werden Wendemanöver vermieden, aber der Solver wählt eine Route aus, bei der sich das Fahrzeug auf derselben Straßenseite wie der Wegpunkt befindet. Das ist ähnlich wie beim Festlegen von side_of_road = true allein.
  • Wenn avoid_u_turns = true für eine bestimmte Besuchs-Anfrage, dann hat ShipmentRoute.Visit in der entsprechenden Antwort das Feld injected_solution_location_token festgelegt. Die genaue Bedeutung des Werts ist ein Implementierungsdetail, aber er enthält Informationen über die Straßenseite, die vom Solver ausgewählt wurde.
  • Wenn Sie ein ShipmentRoute.Visit als Teil der Eingabeanfrage verwenden und dieses ShipmentRoute.Visit einem VisitRequest entspricht, in dem avoid_u_turns = true, muss ShipmentRoute.Visit ein injected_solution_location_token enthalten, das zuvor vom Solver zurückgegeben wurde.

Beschränkungen

Die Funktion zur Vermeidung von U-Turns wird nach dem Best-Effort-Prinzip umgesetzt. In bestimmten Situationen kann die Route weiterhin Wendemanöver enthalten:

  • avoid_u_turns funktioniert nur mit Fortbewegungsmitteln, die side_of_road unterstützen. Insbesondere wird sie nicht für den Fortbewegungsmittelmodus WALKING unterstützt.
  • avoid_u_turns kann nicht für Abholungen und Lieferungen verwendet werden, bei denen Ankunft und Abfahrt nicht am selben Ort erfolgen.
  • Wenn eine Abholung oder Lieferung in einer Sackgasse erfolgt, ist es erforderlich, zu wenden, um die Straße zu verlassen.
  • Ziel dieser Funktion ist es, Wendemanöver an Abhol- und Lieferorten zu vermeiden. Wenden zwischen Wegpunkten wird nicht vermieden.
  • Sehr scharfe Abbiegungen auf eine andere Straße gelten nicht als Wendemanöver und werden in der Regel nicht vermieden.

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