محاسبات مسیر (ازجمله تغییر مسیر) مسیری را که کمترین زمان را برای پیمایش نیاز دارد بهعنوان بهترین مسیر پیشفرض برمیگرداند. اما میتوانید راهبرد مسیریابی را تغییر دهید تا بهجای آن، کوتاهترین مسیر جایگزین برگردانده شود.
اصطلاح کوتاهتر بهمعنای مسیری است که براساس مدل هزینه پیشفرض ما، کوتاهترین مسیر در بین مسیرهای بهینه است. مسیر کوتاهتر ممکن است مطلقاً کوتاهترین مسیر نباشد، زیرا آن گزینه ممکن است جایگزین ضعیفی باشد. برای مثال، اگر کوتاهترین مسیر مطلق ۱۰ کیلومتر باشد و پیمایش آن ۵۰ دقیقه طول بکشد و مسیر دیگری ۱۵ کیلومتر باشد، اما پیمایش آن فقط ۲۰ دقیقه طول بکشد، انتخاب دوم بهینه است، زیرا صرف ۳۰ دقیقه برای کاهش پنج کیلومتر معامله خوبی نیست.
وقتی استراتژی مسیریابی را برای سفری تنظیم میکنید، تا زمانی که سفر تکمیل نشود تغییر نخواهد کرد. برای تغییر استراتژی مسیریابی برای سفر موجود، باید مقصدها را پاک کنید و آنها را دوباره با استراتژی مسیریابی جدید بازنشانی کنید.
تنظیم استراتژی مسیریابی
میتوانید راهبرد مسیریابی را با تنظیم
RoutingOptions.routingStrategy هنگام تماس با setDestinations() پیکربندی کنید.
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);
قالب نوشته راهنمای مسیر
در اولویت مسیر کوتاهتر، توضیحات درطول مسیر جزئیات فاصله را نمایش میدهد. اما میتوانید بهجای آن از فراخوانهای زمان تخمینی ورود استفاده کنید.
درحال پیکربندی قالب نوشته راهنمای مسیر
میتوانید قالب بالانویس مسیر را با فراخوانی setRouteCalloutInfoFormat
در NavigationView (یا در NavigationFragment) تغییر دهید. setRouteCalloutInfoFormat
یکی از مقادیر شمارشی زیر را میگیرد:
| ارزش فهرست | شرح |
|---|---|
| RouteCalloutInfoFormat.DEFAULT | زمان باقیمانده را هنگام استفاده از استراتژی مسیریابی پیشفرض بهترین مسیر نمایش میدهد. هنگام استفاده از استراتژی مسیریابی کوتاهتر، فاصله باقیمانده را نمایش میدهد. |
| RouteCalloutInfoFormat.TIME | زمان باقیمانده را نمایش میدهد. |
| RouteCalloutInfoFormat.DISTANCE | مسافت باقیمانده را نمایش میدهد. |
مثال
نمونه کد زیر نحوه پیکربندی قالب فراخوانی مسیر را نشان میدهد.
mNavFragment.setRouteCalloutInfoFormat(RouteCalloutInfoFormat.TIME);