محاسبات مسیر (از جمله مسیریابی مجدد) مسیری را که کمترین زمان را برای پیمایش میبرد، به عنوان بهترین مسیر پیشفرض برمیگرداند. اما میتوانید استراتژی مسیریابی را تغییر دهید تا مسیرهای جایگزین کوتاهتر به جای آن برگردانده شوند.
اصطلاح کوتاهتر به معنای مسیری است که بر اساس مدل هزینه پیشفرض ما، کوتاهترین مسیر در بین مسیرهای بهینه است. مسیر کوتاهتر ممکن است کوتاهترین مسیر مطلق نباشد، زیرا آن گزینه ممکن است جایگزین ضعیفی باشد. برای مثال، اگر کوتاهترین مسیر 10 کیلومتر است و پیمایش 50 دقیقه طول میکشد و مسیر دیگر 15 کیلومتر است، اما پیمایش فقط 20 دقیقه طول میکشد، انتخاب دوم بهینه است، زیرا صرف 30 دقیقه برای کاهش پنج کیلومتر کار مناسبی نیست. معاوضه خوب
هنگامی که استراتژی مسیریابی یک سفر را تنظیم کردید، تا زمانی که سفر کامل نشود، تغییر نخواهد کرد. برای تغییر استراتژی مسیریابی برای یک سفر موجود، باید مقاصد را پاک کنید و با استراتژی مسیریابی جدید دوباره آنها را بازنشانی کنید.
دریافت جزئیات مسیر
برای تعیین اینکه کدام استراتژی مسیر انتخاب بهینه برای یک نقطه بین مسیر معین است، getRouteInfo()
را فراخوانی کنید تا جزئیات مسیر را هم برای بهترین مسیر پیشفرض و هم برای مسیر کوتاهتر مطلق دریافت کنید. جزئیات شامل مدت زمان و مسافت تا نقطه بین راهی مقصد است.
این جزئیات از RouteInfo
آمده است و در ListenableResultFuture
برگردانده می شود.
مثال
مثال کد زیر نحوه دریافت جزئیات مسیر برای هر یک از دو استراتژی مسیریابی را نشان می دهد.
ListenableResultFuture<RouteInfo> routeInfoFuture =
navigator.getRouteInfo(waypoint, routingOptions);
تنظیم استراتژی مسیریابی
هنگام فراخوانی setDestinations()
می توانید استراتژی مسیریابی را با تنظیم RoutingOptions.routingStrategy
پیکربندی کنید.
RoutingOptions.routingStrategy
یکی از مقادیر شمارش زیر را می گیرد:
مقدار شمارش | توضیحات |
---|---|
RoutingStrategy.DEFAULT_BEST | مسیرها را بر اساس مدل هزینه پیشفرض Navigation SDK رتبهبندی میکند. این استراتژی مسیریابی پیش فرض است. |
RoutingStrategy.SHORTER | مسیرها را بر اساس مسافت رتبه بندی می کند. مسیر بالاترین رتبه کوتاه ترین مسیر برگشتی است. |
مثال
مثال کد زیر نحوه تنظیم اولویت مسیر کوتاهتر را نشان می دهد.
RoutingOptions routingOptions = new RoutingOptions();
routingOptions.routingStrategy(RoutingStrategy.SHORTER);
navigator.setDestinations(destinations, routingOptions, displayOptions);
مسیرهایی که شامل کشتی هستند
بهطور پیشفرض، NavSDK مسیرهایی را که شامل کشتیها میشود، استثنا نمیکند. اگر ترجیح میدهید گزینههای کشتی را بهعنوان بخشی از مسیرهای خود بگنجانید، میتوانید این اولویت مسیریابی را تنظیم کنید تا سفر را در معرض بخشهای کشتی قرار دهید، با تنظیم avoidFerries
روی false
.
مثال
RoutingOptions routingOptions = new RoutingOptions().avoidFerries(true);
// Add additional routing preferences
navigator.setDestination(destination, routingOptions);
فرمت فراخوان مسیر
برگزیده مسیر کوتاهتر، پیامها در طول مسیر جزئیات فاصله را نمایش میدهند. اما می توانید به جای آن از فراخوان های ETA استفاده کنید.
پیکربندی فرمت فراخوان مسیر
با فراخوانی setRouteCalloutInfoFormat
در NavigationView
(یا در NavigationFragment
) میتوانید فرمت فراخوان مسیر را تغییر دهید. setRouteCalloutInfoFormat
یکی از مقادیر شمارش زیر را می گیرد:
مقدار شمارش | توضیحات |
---|---|
RouteCalloutInfoFormat.DEFAULT | زمان باقی مانده هنگام استفاده از بهترین استراتژی مسیریابی مسیر پیش فرض را نشان می دهد. هنگام استفاده از استراتژی مسیریابی مسیر کوتاهتر، فاصله باقیمانده را نشان میدهد. |
RouteCalloutInfoFormat.TIME | زمان باقی مانده را نمایش می دهد. |
RouteCalloutInfoFormat.DISTANCE | فاصله باقی مانده را نشان می دهد. |
مثال
مثال کد زیر نحوه پیکربندی فرمت فراخوان مسیر را نشان می دهد.
mNavFragment.setRouteCalloutInfoFormat(RouteCalloutInfoFormat.TIME);