از چرخش در محل های تحویل و تحویل خودداری کنید

به طور پیش‌فرض، وسایل نقلیه می‌توانند از هر جهتی به محل تحویل یا تحویل بار برسند و سپس در هر جهتی آنجا را ترک کنند. در برخی موارد، این امر وسیله نقلیه را مجبور به دور زدن در محل بازدید می‌کند که ممکن است به دلیل اندازه وسیله نقلیه، علائم راهنمایی و رانندگی در محل یا شرایط ترافیکی معمول، دشوار یا غیرممکن باشد.

برای جلوگیری از تغییر جهت وسایل نقلیه بین زمان ورود و خروج به یک مکان تحویل یا تحویل مشخص، می‌توانید 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 انجام داد.

قبل از ارسال درخواست، پارامترهای زیر را با مقادیر مناسب برای محیط خود جایگزین کنید:

  • مطمئن شوید که اعتبارنامه‌های پیش‌فرض برنامه را همانطور که در بخش «استفاده از OAuth» توضیح داده شده است، پیکربندی کرده‌اید.
  • PROJECT_NUMBER_OR_ID روی شماره یا شناسه پروژه ابری خود تنظیم کنید.

    دستور زیر یک درخواست OptimizeTours را به Route Optimization API ارسال می‌کند و به صورت همزمان پاسخی دریافت می‌کند.

    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

پس از تکمیل درخواست، یک پیام پاسخ دریافت خواهید کرد.

تعامل با سایر ویژگی‌ها

  • می‌توان 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 نمی‌توان برای تحویل و برداشت کالا در جایی که زمان ورود و خروج یکسان نیست، استفاده کرد.
  • وقتی یک وانت یا تحویل بار در یک جاده بن‌بست قرار دارد، برای خروج از جاده لازم است دور بزنید.
  • هدف از این ویژگی، جلوگیری از دور زدن در محل‌های تحویل و دریافت کالا است. دور زدن بین نقاط مسیر اجتناب‌ناپذیر است.
  • پیچ‌های خیلی تند به جاده‌های دیگر، دوربرگردان محسوب نمی‌شوند و معمولاً از آنها اجتناب نمی‌شود.

در حالی که این ویژگی در حال توسعه است، محدودیت‌های دیگری نیز وجود دارد. ما انتظار داریم که با تکامل این ویژگی، این محدودیت‌ها نیز برطرف شوند.