ترتیب توقف ها را در مسیر خود بهینه کنید

به‌طور پیش‌فرض، روش Routes API Compute Routes یک مسیر را از طریق چندین ایستگاه، به نام ایستگاه‌های توقف، به ترتیبی که آنها را ارائه می‌کنید، محاسبه می‌کند.

می‌توانید از Routes API، مسیر ارائه‌شده را با مرتب کردن مجدد توقف‌ها به ترتیب کارآمدتر بهینه‌سازی کنید. بهینه‌سازی نقطه‌راه برای زمان سفر بهینه‌سازی می‌شود، اما هنگام تصمیم‌گیری اینکه کدام مسیر کارآمدتر است، عوامل دیگری مانند مسافت و تعداد پیچ‌ها را نیز در نظر می‌گیرد.

برای بهینه سازی نقاط بین راه

  1. مطمئن شوید که هیچ یک از ایستگاه‌های بین مسیر، via روی true تنظیم نکرده‌اند، برای مثال: {"address": "Clare,SA", "via": true} . برای اطلاعات بیشتر در مورد نقاط بین راهی، به تعیین نقاط بین راهی مراجعه کنید.

  2. مطمئن شوید routing_preference روی TRAFFIC_AWARE_OPTIMAL تنظیم نشده باشد.

  3. optimize_waypoint_order را روی true تنظیم کنید. به عنوان مثال:

    "optimizeWaypointOrder": "true",
    
  4. فیلد routes.optimizedIntermediateWaypointIndex در فیلد ماسک مشخص کنید:

    استراحت

    -H X-Goog-FieldMask: routes.optimizedIntermediateWaypointIndex

    RPC

    const (fieldMask = "routes.optimizedIntermediateWaypointIndex")

درک نحوه بهینه سازی ترتیب نقاط بین راه

در اینجا نحوه بهینه سازی Routes API ترتیب نقاط بین مسیر در یک مسیر آمده است:

  1. به طور خودکار نقاط بین راه را بر اساس ترتیبی که آنها را در درخواست ارائه می دهید، با شروع با 0 فهرست می کند.

  2. ترتیب نقاط بین راه را با استفاده از اعداد شاخصی که به نقاط راه در درخواست اختصاص داده است، بهینه می کند.

  3. ترتیب بهینه‌سازی شده نقطه‌ای را در شی routes ، در قسمت waypoint_order ، در routes.optimizedIntermediateWaypointIndex برمی‌گرداند.

مثال

این درخواست خواستار بهینه سازی مسیری از آدلاید، استرالیای جنوبی، به هر یک از مناطق اصلی شراب استرالیای جنوبی و سپس بازگشت به آدلاید است.

curl -X POST -H 'content-type: application/json' -d ' {
  "origin": {
    "address": "Adelaide,SA"
  },
  "destination": {
    "address": "Adelaide,SA"
  },
  "intermediates": [
    {"address": "Barossa+Valley,SA"},
    {"address": "Clare,SA"},
    {"address": "Coonawarra,SA"},
    {"address": "McLaren+Vale,SA"}
  ],
  "travelMode": "DRIVE",
  "optimizeWaypointOrder": "true"
  }' \
-H 'Content-Type: application/json' \
-H 'X-Goog-Api-Key: YOUR_API_KEY' \
-H 'X-Goog-FieldMask: routes,geocodingResults.intermediates.intermediateWaypointRequestIndex' \
'https://routes.googleapis.com/directions/v2:computeRoutes'

Routes API نقاط میانی ارائه شده در درخواست را ایندکس می کند که از 0 شروع می شود. به عنوان مثال:

0    {"address": "Barossa+Valley,SA"},
1    {"address": "Clare,SA"},
2    {"address": "Coonawarrav,SA"},
3    {"address": "McLaren+Vale,SA"}

با استفاده از اعداد شاخص برای چهار نقطه راه ارائه شده در درخواست، سرویس ترتیب بهینه شده را برمی گرداند:

"optimizedIntermediateWaypointIndex": [
                3,
                2,
                0,
                1
            ]