بهطور پیشفرض، روش Routes API Compute Routes
یک مسیر را از طریق چندین ایستگاه، به نام ایستگاههای توقف، به ترتیبی که آنها را ارائه میکنید، محاسبه میکند.
میتوانید از Routes API، مسیر ارائهشده را با مرتب کردن مجدد توقفها به ترتیب کارآمدتر بهینهسازی کنید. بهینهسازی نقطهراه برای زمان سفر بهینهسازی میشود، اما هنگام تصمیمگیری اینکه کدام مسیر کارآمدتر است، عوامل دیگری مانند مسافت و تعداد پیچها را نیز در نظر میگیرد.
برای بهینه سازی نقاط بین راه
مطمئن شوید که هیچ یک از ایستگاههای بین مسیر،
via
رویtrue
تنظیم نکردهاند، برای مثال:{"address": "Clare,SA", "via": true}
. برای اطلاعات بیشتر در مورد نقاط بین راهی، به تعیین نقاط بین راهی مراجعه کنید.مطمئن شوید
routing_preference
رویTRAFFIC_AWARE_OPTIMAL
تنظیم نشده باشد.optimize_waypoint_order
را رویtrue
تنظیم کنید. به عنوان مثال:"optimizeWaypointOrder": "true",
فیلد
routes.optimizedIntermediateWaypointIndex
در فیلد ماسک مشخص کنید:استراحت
-H X-Goog-FieldMask: routes.optimizedIntermediateWaypointIndex
RPC
const (fieldMask = "routes.optimizedIntermediateWaypointIndex")
درک نحوه بهینه سازی ترتیب نقاط بین راه
در اینجا نحوه بهینه سازی Routes API ترتیب نقاط بین مسیر در یک مسیر آمده است:
به طور خودکار نقاط بین راه را بر اساس ترتیبی که آنها را در درخواست ارائه می دهید، با شروع با 0 فهرست می کند.
ترتیب نقاط بین راه را با استفاده از اعداد شاخصی که به نقاط راه در درخواست اختصاص داده است، بهینه می کند.
ترتیب بهینهسازی شده نقطهای را در شی
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 ]