Evita le inversione a U nelle località di ritiro e consegna
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Per impostazione predefinita, i veicoli possono arrivare in un luogo di ritiro o di consegna da qualsiasi
direzione e poi ripartire in qualsiasi direzione. In alcuni casi, questo costringe
il veicolo a fare inversione a U nel luogo della visita, il che potrebbe essere difficile o
impossibile a causa delle dimensioni del veicolo, dei segnali stradali nel luogo o delle normali
condizioni di traffico.
Per impedire ai veicoli di cambiare direzione tra l'arrivo e la partenza
per una determinata posizione di ritiro o consegna, puoi impostare avoid_u_turns
su
true per questa posizione. Con questa impostazione, il veicolo arriverà e lascerà
la posizione con la stessa direzione, evitando così l'inversione a U. Sulle strade a doppio senso,
il risolutore prenderà in considerazione entrambe le direzioni e ne sceglierà una come parte dell'ottimizzazione
del percorso.
Puoi anche impostare side_of_road
su true per ottenere un percorso in cui il veicolo
arriva e parte dal lato della strada più vicino al waypoint. In questo
caso, il veicolo non cambia direzione tra l'arrivo e la
partenza. È possibile impostare sia side_of_road
che avoid_u_turns
su true
per ottenere lo stesso risultato. Per maggiori dettagli, vedi Interazione con altre funzionalità.
In pratica, avoid_u_turns
deve essere utilizzato quando è sicuro attraversare la strada per
raggiungere il waypoint. Utilizza side_of_road
quando l'attraversamento è sconsigliato o non
possibile.
Esempio: effettuare una richiesta OptimizeTours
con avoid_u_turns
Le richieste OptimizeTours
possono essere effettuate utilizzando REST o gRPC.
Prima di effettuare una richiesta, sostituisci i seguenti parametri con valori
appropriati per il tuo ambiente:
Al termine della richiesta, riceverai un messaggio di risposta.
Interazione con altre funzionalità
avoid_u_turns
può essere utilizzato insieme a side_of_road = true
. In questo caso,
le inversioni a U vengono evitate, ma il risolutore seleziona un percorso in cui il veicolo si trova
sullo stesso lato della strada del waypoint, in modo simile all'impostazione
side_of_road = true
da solo.
- Quando
avoid_u_turns = true
per una determinata richiesta di visita, allora
ShipmentRoute.Visit
nella risposta corrispondente
ha il campo injected_solution_location_token
impostato. Il significato preciso del
suo valore è un dettaglio di implementazione, ma codifica le informazioni sul
lato della strada scelto dal risolutore.
- Quando utilizzi un
ShipmentRoute.Visit
come parte della richiesta di input, se questo
ShipmentRoute.Visit
corrisponde a un VisitRequest
in cui
avoid_u_turns = true
, allora ShipmentRoute.Visit
deve contenere un
injected_solution_location_token
restituito in precedenza dal risolutore.
Limitazioni
L'evitamento dell'inversione a U è basato sul "best effort". In alcune situazioni, il percorso potrebbe comunque
contenere inversioni a U:
avoid_u_turns
funziona solo con le modalità di viaggio che supportano side_of_road
.
Nello specifico, non è supportata per la modalità di viaggio WALKING
.
avoid_u_turns
non può essere utilizzato per i ritiri e le consegne in cui l'arrivo e
la partenza non coincidono.
- Quando un ritiro o una consegna si trova su una strada senza uscita, è necessario fare
un'inversione a U per uscire dalla strada.
- Lo scopo di questa funzionalità è evitare le inversioni a U nei luoghi di ritiro e consegna.
Le inversioni a U tra i waypoint non vengono evitate.
- Le curve molto strette su una strada diversa non sono considerate inversioni a U e in genere non vengono evitate.
Durante lo sviluppo di questa funzionalità, sono presenti ulteriori limitazioni. Prevediamo
che vengano rimossi man mano che la funzionalità si evolve.
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2025-09-04 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-09-04 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)."]]