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 mitside_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 vonside_of_road = true
allein.- Wenn
avoid_u_turns = true
für eine bestimmte Besuchs-Anfrage, dann hatShipmentRoute.Visit
in der entsprechenden Antwort das Feldinjected_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 diesesShipmentRoute.Visit
einemVisitRequest
entspricht, in demavoid_u_turns = true
, mussShipmentRoute.Visit
eininjected_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, dieside_of_road
unterstützen. Insbesondere wird sie nicht für den FortbewegungsmittelmodusWALKING
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.
avoid_u_turns
kann nicht zusammen mitinterpret_injected_solutions_using_labels
verwendet werden.