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

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

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

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

  • اطمینان حاصل کنید که اعتبارنامه پیش‌فرض برنامه را همانطور که در Use OAuth توضیح داده شده پیکربندی کرده‌اید.
  • PROJECT_NUMBER_OR_ID را روی شماره یا شناسه پروژه Cloud خود تنظیم کنید.

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

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