تنظیم ترجیحات مسیریابی

محاسبات مسیر (از جمله مسیریابی مجدد) مسیری را که کمترین زمان را برای پیمایش می‌برد، به عنوان بهترین مسیر پیش‌فرض برمی‌گرداند. اما می‌توانید استراتژی مسیریابی را تغییر دهید تا مسیرهای جایگزین کوتاه‌تر به جای آن برگردانده شوند.

اصطلاح کوتاهتر به معنای مسیری است که بر اساس مدل هزینه پیش‌فرض ما، کوتاه‌ترین مسیر در بین مسیرهای بهینه است. مسیر کوتاه‌تر ممکن است کوتاه‌ترین مسیر مطلق نباشد، زیرا آن گزینه ممکن است جایگزین ضعیفی باشد. برای مثال، اگر کوتاه‌ترین مسیر 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);