با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
بهطور پیشفرض، وسایل نقلیه میتوانند از هر جهت به یک وانت یا محل تحویل برسند و سپس در هر جهت حرکت کنند. در برخی موارد، این وسیله نقلیه را مجبور میکند تا در محل بازدید بپیچد، که ممکن است به دلیل اندازه وسیله نقلیه، علائم راهنمایی و رانندگی در محل یا شرایط معمول ترافیک دشوار یا غیرممکن باشد.
برای جلوگیری از تغییر جهت وسایل نقلیه بین ورود و خروج برای یک مکان تحویل یا تحویل خاص، می توانید avoid_u_turns برای این مکان روی true تنظیم کنید. تحت این تنظیمات، وسیله نقلیه با همان سمت به محل می رسد و از محل خارج می شود، بنابراین از چرخش دور جلوگیری می کند. در جاده های دو طرفه، حل کننده هر دو جهت را در نظر می گیرد و یکی را به عنوان بخشی از بهینه سازی مسیر انتخاب می کند.
همچنین میتوانید side_of_road روی true تنظیم کنید تا مسیری را به دست آورید که وسیله نقلیه در کنار جاده به نزدیکترین نقطه راه میرسد و از آنجا خارج میشود. در این حالت، وسیله نقلیه نیز بین ورود و خروج تغییر مسیر نمی دهد. برای رسیدن به یک نتیجه می توان هر دو side_of_road و avoid_u_turns روی true تنظیم کرد. برای جزئیات، به تعامل با سایر ویژگیها مراجعه کنید.
در عمل باید avoid_u_turns زمانی استفاده کرد که عبور از جاده برای رسیدن به ایستگاه بین راهی امن باشد. هنگامی که عبور ممنوع است یا امکان پذیر نیست، از side_of_road استفاده کنید.
مثال: درخواست OptimizeTours را با avoid_u_turns ارسال کنید
درخواست های OptimizeTours را می توان با استفاده از REST یا gRPC انجام داد.
قبل از درخواست، پارامترهای زیر را با مقادیر مناسب برای محیط خود جایگزین کنید:
پس از تکمیل درخواست، یک پیام پاسخ دریافت خواهید کرد.
تعامل با سایر ویژگی ها
avoid_u_turns می توان همراه با side_of_road = true استفاده کرد. در این حالت، از دور زدن اجتناب میشود، اما حلکننده مسیری را انتخاب میکند که وسیله نقلیه در همان سمت جاده بهعنوان نقطهی راه باشد، شبیه به تنظیم side_of_road = true به تنهایی.
هنگامی که avoid_u_turns = true برای یک درخواست بازدید خاص، ShipmentRoute.Visit در پاسخ مربوطه دارای فیلد injected_solution_location_token است. معنای دقیق مقدار آن یک جزئیات پیاده سازی است، اما اطلاعات مربوط به کنار جاده انتخاب شده توسط حل کننده را رمزگذاری می کند.
هنگامی که از یک ShipmentRoute.Visit به عنوان بخشی از درخواست ورودی استفاده می کنید، اگر آن ShipmentRoute.Visit با یک VisitRequest که در آن avoid_u_turns = true مطابقت دارد، ShipmentRoute.Visit باید حاوی یک injected_solution_location_token باشد که قبلاً توسط حل کننده بازگردانده شده است.
محدودیت ها
اجتناب از دور برگشت بهترین تلاش است. در شرایط خاص، مسیر ممکن است همچنان دارای چرخش های دور باشد:
avoid_u_turns فقط با حالتهای سفر که side_of_road پشتیبانی میکنند کار میکند. به طور خاص، برای حالت سفر WALKING پشتیبانی نمی شود.
avoid_u_turns نمی توان برای تحویل و تحویل در جایی که ورود و خروج یکسان نیست استفاده کرد.
هنگامی که یک وانت یا تحویل در جاده ای بن بست قرار دارد، برای خروج از جاده باید یک دور برگشتی انجام داد.
هدف از این ویژگی جلوگیری از چرخش در محل تحویل و تحویل است. از چرخش دور بین ایستگاه های بین راه اجتناب نمی شود.
پیچهای بسیار تند به سمت جادههای دیگر دوربرگردان محسوب نمیشوند و معمولاً از آنها اجتناب نمیشود.
تا زمانی که این ویژگی در حال توسعه است، محدودیتهای دیگری نیز وجود دارد. ما انتظار داریم که آنها با تکامل ویژگی حذف شوند.
تاریخ آخرین بهروزرسانی 2025-08-29 بهوقت ساعت هماهنگ جهانی.
[null,null,["تاریخ آخرین بهروزرسانی 2025-08-29 بهوقت ساعت هماهنگ جهانی."],[[["\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)."]]