שינוי העדפות הניתוב

חישובי מסלול (כולל ניתוב מחדש) מחזירים את המסלול שלוקח את משך הזמן הקצר ביותר לניווט, כברירת המחדל של המסלול הטוב ביותר. אבל אפשר לשנות את אסטרטגיית הניתוב כך שיוצגו במקום זאת האפשרויות הקצרות יותר מבין החלופות.

פירוש המונח shorter הוא המסלול הקצר ביותר מבין המסלולים האופטימליים, על סמך מודל העלות שמוגדר כברירת מחדל. יכול להיות שהמסלול הקצר יותר לא יהיה המסלול המוחלט ביותר, כי האפשרות הזו עלולה להיות חלופה גרועה. לדוגמה, אם המסלול הקצר ביותר הוא 10 ק"מ והניווט נמשך 50 דקות, ומסלול אחר הוא 15 ק"מ אבל הניווט נמשך רק 20 דקות, האפשרות השנייה היא אופטימלית, כי חיסכון של 30 דקות בפחות חמישה ק"מ הוא לא פתרון טוב.

אחרי שמגדירים את אסטרטגיית הניתוב של הנסיעה, היא לא תשתנה עד לסיום הנסיעה. כדי לשנות את אסטרטגיית הניתוב של נסיעה קיימת, צריך למחוק את היעדים ולאפס אותם שוב עם אסטרטגיית הניתוב החדשה.

קבלת פרטי המסלול

כדי לקבוע איזו אסטרטגיית מסלול היא האפשרות האופטימלית לנקודת ביניים מסוימת, צריך לקרוא לפונקציה getRouteInfo() כדי לקבל פרטים על המסלול הטוב ביותר המוגדר כברירת מחדל וגם על המסלול הקצר ביותר. הפרטים כוללים את משך הזמן ואת המרחק לנקודת ציון של היעד.

הפרטים האלה מגיעים מ-RouteInfo, והם מוחזרים באמצעות ListenableResultFuture.

דוגמה

דוגמת הקוד הבאה ממחישה איך לקבל פרטי מסלול עבור כל אחת משתי אסטרטגיות הניתוב.

ListenableResultFuture<RouteInfo> routeInfoFuture =
        navigator.getRouteInfo(waypoint, routingOptions);

הגדרת אסטרטגיית הניתוב

אפשר להגדיר את אסטרטגיית הניתוב על ידי הגדרה של RoutingOptions.routingStrategy כשמתקשרים אל setDestinations().

RoutingOptions.routingStrategy לוקחת את אחד מערכי המספור הבאים:

ערך המספורתיאור
RoutingStrategy.DEFAULT_BEST מדרג מסלולים לפי מודל העלות המוגדר כברירת מחדל של ה-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);