Evite fazer retornos nos locais de retirada e entrega
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Por padrão, os veículos podem chegar a um local de coleta ou entrega de qualquer direção e sair em qualquer direção. Em alguns casos, isso força o veículo a fazer um retorno no local da visita, o que pode ser difícil ou impossível devido ao tamanho do veículo, às placas de trânsito no local ou às condições normais de tráfego.
Para evitar que os veículos mudem de direção entre a chegada e a partida
de um determinado local de coleta ou entrega, defina avoid_u_turns
como
"true" para esse local. Com essa configuração, o veículo vai chegar e sair
do local com o mesmo sentido, evitando a inversão de marcha. Em vias de mão dupla, o solucionador considera os dois sentidos e escolhe um deles como parte da otimização do trajeto.
Você também pode definir side_of_road
como "true" para receber uma rota em que o veículo chega e sai do lado da via mais próximo do waypoint. Nesse
caso, o veículo também não muda de direção entre a chegada e a
partida. É possível definir side_of_road
e avoid_u_turns
como "true" para alcançar o mesmo resultado. Para mais detalhes, consulte Interação com outros recursos.
Na prática, avoid_u_turns
deve ser usado quando é seguro atravessar a rua para chegar ao ponto de referência. Use side_of_road
quando a travessia não for recomendada ou não for possível.
Exemplo: fazer uma solicitação OptimizeTours
com avoid_u_turns
As solicitações OptimizeTours
podem ser feitas usando REST ou gRPC.
Antes de fazer uma solicitação, substitua os parâmetros a seguir por valores
adequados ao seu ambiente:
Quando a solicitação for concluída, você vai receber uma mensagem de resposta.
Interação com outros recursos
avoid_u_turns
pode ser usado com side_of_road = true
. Nesse caso, as inversões de marcha são evitadas, mas o solucionador seleciona uma rota em que o veículo está no mesmo lado da via que o ponto de referência, semelhante a definir apenas side_of_road = true
.
- Quando
avoid_u_turns = true
para uma determinada solicitação de visita, o
ShipmentRoute.Visit
na resposta correspondente
tem o campo injected_solution_location_token
definido. O significado exato do valor é um detalhe de implementação, mas ele codifica as informações sobre o lado da rua escolhido pelo solucionador.
- Quando você usa um
ShipmentRoute.Visit
como parte da solicitação de entrada, se esse
ShipmentRoute.Visit
corresponder a um VisitRequest
em que
avoid_u_turns = true
, então ShipmentRoute.Visit
precisará conter um
injected_solution_location_token
retornado anteriormente pelo solucionador.
Limitações
A prevenção de retornos é baseada no melhor esforço. Em algumas situações, a rota ainda pode ter retornos em U:
- O
avoid_u_turns
funciona apenas com modos de viagem que oferecem suporte a side_of_road
.
Especificamente, ele não é compatível com o modo de viagem WALKING
.
avoid_u_turns
não pode ser usado para retiradas e entregas em que a chegada e a partida não são iguais.
- Quando uma coleta ou entrega é feita em uma rua sem saída, é necessário fazer
um retorno para sair da via.
- O objetivo desse recurso é evitar retornos em U nos locais de coleta e entrega.
Retornos entre waypoints não são evitados.
- Curvas muito acentuadas para uma via diferente não são consideradas retornos em U e geralmente não são evitadas.
Há outras limitações enquanto esse recurso está em desenvolvimento. Esperamos que elas sejam removidas à medida que o recurso evolui.
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2025-09-03 UTC.
[null,null,["Última atualização 2025-09-03 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)."]]