Unikaj zawracania w miejscach odbioru i dostawy.
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Domyślnie pojazdy mogą przyjeżdżać do miejsca odbioru lub dostawy z dowolnego kierunku, a następnie odjeżdżać w dowolnym kierunku. W niektórych przypadkach zmusza to pojazd do zawrócenia w miejscu wizyty, co może być trudne lub niemożliwe ze względu na rozmiar pojazdu, znaki drogowe w danym miejscu lub zwykłe warunki ruchu.
Aby zapobiec zmianie kierunku jazdy pojazdów między przyjazdem a odjazdem w przypadku danej lokalizacji odbioru lub dostawy, możesz ustawić wartość avoid_u_turns
na true. W tym ustawieniu pojazd przyjedzie i odjedzie z lokalizacji w tym samym kierunku, dzięki czemu nie będzie musiał zawracać. W przypadku dróg dwukierunkowych
rozwiązanie uwzględni oba kierunki i wybierze jeden z nich w ramach optymalizacji trasy.
Możesz też ustawić wartość side_of_road
na true, aby uzyskać trasę, na której pojazd przyjeżdża i odjeżdża po stronie drogi najbliższej punktu pośredniego. W tym przypadku pojazd nie zmienia też kierunku między przyjazdem a odjazdem. Aby osiągnąć ten sam rezultat, możesz ustawić wartość „true” w polach side_of_road
i avoid_u_turns
. Więcej informacji znajdziesz w artykule Współdziałanie z innymi funkcjami.
W praktyce symbolu avoid_u_turns
należy używać, gdy bezpiecznie jest przejść przez drogę, aby dotrzeć do punktu. Używaj ikony side_of_road
, gdy przejście jest odradzane lub niemożliwe.
Przykład: wysyłanie żądania OptimizeTours
za pomocą avoid_u_turns
Żądania OptimizeTours
można przesyłać za pomocą REST lub gRPC.
Zanim wyślesz żądanie, zastąp te parametry wartościami odpowiednimi dla Twojego środowiska:
Gdy prośba zostanie zrealizowana, otrzymasz wiadomość z odpowiedzią.
Interakcje z innymi funkcjami
avoid_u_turns
można używać razem z side_of_road = true
. W tym przypadku unika się zawracania, ale algorytm wybiera trasę, na której pojazd znajduje się po tej samej stronie drogi co punkt pośredni, podobnie jak w przypadku ustawienia tylko side_of_road = true
.
- Gdy
avoid_u_turns = true
dla określonego żądania wizyty, to w odpowiedzi ShipmentRoute.Visit
pole injected_solution_location_token
jest ustawione. Dokładne znaczenie tej wartości jest szczegółem implementacji, ale zawiera informacje o stronie drogi wybranej przez rozwiązanie.
- Jeśli w ramach żądania wejściowego używasz znaku
ShipmentRoute.Visit
, a odpowiada on znakowi VisitRequest
, w którym avoid_u_turns = true
, to ShipmentRoute.Visit
musi zawierać znak injected_solution_location_token
zwrócony wcześniej przez solver.ShipmentRoute.Visit
Ograniczenia
Unikanie zawracania jest realizowane w miarę możliwości. W niektórych sytuacjach trasa może nadal zawierać zawracanie:
avoid_u_turns
działa tylko w przypadku trybów podróży, które obsługują side_of_road
.
W szczególności nie jest on obsługiwany w przypadku trybu podróży WALKING
.
avoid_u_turns
nie można używać w przypadku odbiorów i dostaw, w których miejsce przyjazdu i odjazdu nie jest takie samo.
- Gdy miejsce odbioru lub dostawy znajduje się na drodze bez przejazdu, aby z niej wyjechać, należy zawrócić.
- Celem tej funkcji jest unikanie zawracania w miejscach odbioru i dostawy.
Zawracanie między punktami nie jest unikane.
- Bardzo ostre skręty w inną drogę nie są uznawane za zawracanie i zwykle nie są omijane.
Podczas opracowywania tej funkcji obowiązują dodatkowe ograniczenia. Wraz z rozwojem tej funkcji spodziewamy się zniesienia tych ograniczeń.
O ile nie stwierdzono inaczej, treść tej strony jest objęta licencją Creative Commons – uznanie autorstwa 4.0, a fragmenty kodu są dostępne na licencji Apache 2.0. Szczegółowe informacje na ten temat zawierają zasady dotyczące witryny Google Developers. Java jest zastrzeżonym znakiem towarowym firmy Oracle i jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-08-29 UTC.
[null,null,["Ostatnia aktualizacja: 2025-08-29 UTC."],[[["\u003cp\u003eVehicles typically arrive and depart from locations in any direction, potentially requiring u-turns.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eavoid_u_turns\u003c/code\u003e setting prevents vehicles from changing direction at a pickup or delivery location, ensuring arrival and departure with the same heading.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eside_of_road\u003c/code\u003e setting ensures vehicles arrive and leave on the side of the road closest to the waypoint, also avoiding changes in heading.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eavoid_u_turns\u003c/code\u003e and \u003ccode\u003eside_of_road\u003c/code\u003e can be used together to prevent u-turns while also maintaining the vehicle's position on the correct side of the road.\u003c/p\u003e\n"],["\u003cp\u003eU-turn avoidance is not supported in all travel modes, such as \u003ccode\u003eWALKING\u003c/code\u003e mode, and is also not supported when the arrival and departure locations for a delivery or pickup differ.\u003c/p\u003e\n"]]],[],null,["\u003cbr /\u003e\n\n| This product or feature is Experimental (pre-GA). Pre-GA products and features might have limited support, and changes to pre-GA products and features might not be compatible with other pre-GA versions. Pre-GA Offerings are covered by the [Google\n| Maps Platform Service Specific Terms](https://cloud.google.com/maps-platform/terms/maps-service-terms). For more information, see the [launch stage descriptions](/maps/launch-stages).\n\n\u003cbr /\u003e\n\nBy default, vehicles can arrive at a pickup or a delivery location from any\ndirection, and then leave in any direction. In some cases, this forces\nthe vehicle to make a u-turn at the visit location, which may be difficult or\nimpossible because of vehicle size, traffic signs at the location, or usual\ntraffic conditions.\n\nTo prevent vehicles from changing direction between the arrival and departure\nfor a given pickup or delivery location, you can set [`avoid_u_turns`](/maps/tt/route-optimization/experimental/u-turn-avoidance/reference/rest/v1/ShipmentModel#VisitRequest.FIELDS.avoid_u_turns) to\ntrue for this location. Under this setting, the vehicle will arrive and leave\nthe location with the same heading, thus avoiding the u-turn. On two-way roads\nthe solver will consider both directions and choose one as part of the route\noptimization.\n\nYou can also set [`side_of_road`](/maps/tt/route-optimization/experimental/u-turn-avoidance/reference/rest/v1/projects/optimizeTours#google.maps.routeoptimization.v1.Waypoint.FIELDS.bool.google.maps.routeoptimization.v1.Waypoint.side_of_road) to true to obtain a route where the vehicle\narrives and leaves on the side of the road closest to the waypoint. In this\ncase, the vehicle also does not change heading between the arrival and the\ndeparture. It is possible to set both `side_of_road` and `avoid_u_turns` to true\nto achieve the same result. For details, see [Interaction with other\nfeatures](#interaction_with_other_features).\n\nIn practice, `avoid_u_turns` should be used when it is safe to cross the road to\nget to the waypoint. Use `side_of_road` when crossing is discouraged or not\npossible.\n\nExample: Make an `OptimizeTours` request with `avoid_u_turns`\n\n`OptimizeTours` requests can be made using either [REST](/maps/tt/route-optimization/experimental/u-turn-avoidance/reference/rest/v1/projects/optimizeTours) or [gRPC](/maps/tt/route-optimization/experimental/u-turn-avoidance/reference/rpc/google.maps.routeoptimization.v1#routeoptimization).\n\nBefore making a request, replace the following parameters with values\nappropriate for your environment:\n\n- Ensure you have [Application Default Credentials](https://cloud.google.com/docs/authentication/provide-credentials-adc) configured as described in [Use OAuth](/maps/documentation/route-optimization/oauth-token).\n- Set \u003cvar label=\"project_number\" translate=\"no\"\u003ePROJECT_NUMBER_OR_ID\u003c/var\u003e to your Cloud\n project number or ID.\n\n The following command sends an `OptimizeTours` request to the Route\n Optimization API and receives a response synchronously. \n\n ```scdoc\n curl -X POST 'https://routeoptimization.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID:optimizeTours' \\\n -H \"Content-Type: application/json\" \\\n -H \"Authorization: Bearer $(gcloud auth application-default print-access-token)\" \\\n --data @- \u003c\u003cEOM\n {\n \"model\": {\n \"shipments\": [\n {\n \"pickups\": [\n {\n \"arrivalLocation\": {\n \"latitude\": 37.42506261000996,\n \"longitude\": -122.09535511930135\n },\n \"avoidUTurns\": true\n }\n ],\n \"deliveries\": [\n {\n \"arrivalLocation\": {\n \"latitude\": 37.42421503206021,\n \"longitude\": -122.09526063135228\n },\n \"avoidUTurns\": true\n }\n ]\n }\n ],\n \"vehicles\": [\n {\n \"travelMode\": \"DRIVING\",\n \"costPerKilometer\": 1.0\n }\n ],\n }\n }\n EOM\n ```\n | **Note:** this example uses the `--data @-` to read a request from standard input. Use `--data @`\u003cvar label=\"curl_filename\" translate=\"no\"\u003eFilename\u003c/var\u003e to read from a file.\n\nOnce the request completes, you'll receive a response message.\n\nInteraction with other features\n\n- `avoid_u_turns` can be used together with `side_of_road = true`. In this case, u-turns are avoided, but the solver selects a route that the vehicle is on the same side of the road as the waypoint, similar to setting `side_of_road = true` alone.\n- When `avoid_u_turns = true` for a certain visit request, then the `ShipmentRoute.Visit` in the corresponding response has the field `injected_solution_location_token` set. The precise meaning of its value is an implementation detail, but it encodes the information about the side of the road picked by the solver.\n- When you use a `ShipmentRoute.Visit` as part of the input request, if that `ShipmentRoute.Visit` corresponds to a `VisitRequest` in which `avoid_u_turns = true`, then `ShipmentRoute.Visit` must contain an `injected_solution_location_token` previously returned by the solver.\n\nLimitations\n\nU-turn avoidance is best effort. In certain situations, the route may still\ncontain u-turns:\n\n- `avoid_u_turns` works only with travel modes that support [`side_of_road`](/maps/tt/route-optimization/experimental/u-turn-avoidance/reference/rest/v1/projects/optimizeTours#google.maps.routeoptimization.v1.Waypoint.FIELDS.bool.google.maps.routeoptimization.v1.Waypoint.side_of_road). Specifically, it is not supported for the `WALKING` travel mode.\n- `avoid_u_turns` can't be used for pickups and deliveries where the arrival and departure are not the same.\n- When a pickup or a delivery is on a dead-end road, it is necessary to make a u-turn to leave the road.\n- The aim of this feature is avoiding u-turns at pickup and delivery locations. U-turns between waypoints are not avoided.\n- Very sharp turns to a different road are not considered u-turns, and they will generally not be avoided.\n\nThere are additional limitations while this feature is under development. We\nexpect them to be lifted as the feature evolves.\n\n- `avoid_u_turns` can't be used together with [`interpret_injected_solutions_using_labels`](/maps/tt/route-optimization/experimental/u-turn-avoidance/reference/rest/v1/projects/optimizeTours#google.maps.routeoptimization.v1.OptimizeToursRequest.FIELDS.bool.google.maps.routeoptimization.v1.OptimizeToursRequest.interpret_injected_solutions_using_labels)."]]