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

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

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

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

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

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

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

דוגמה

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

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

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

אפשר להגדיר את אסטרטגיית הניתוב על ידי הגדרה של 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);

מסלולים שכוללים מעבורות

כברירת מחדל, מערכת Nav SDK לא כוללת מסלולים שכוללים מעבורות. אם אתם מעדיפים לכלול אפשרויות למעבורות כחלק מהמסלולים שלכם, אתם יכולים לשנות את העדפת הניתוב הזו כדי לחשוף את הנסיעה לקטעי המעבורות על ידי הגדרת 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);