חישובי מסלולים (כולל ניתוב מחדש) מחזירים את המסלול שבו משך הניווט הוא הקצר ביותר כמסלול ברירת המחדל הטוב ביותר. אבל אפשר לשנות את אסטרטגיית הניתוב כך שהמסלול הקצר יותר מבין חלופות המסלול יוחזר במקום זאת.
המונח קצר יותר מתייחס למסלול הקצר ביותר מבין המסלולים האופטימליים, על סמך מודל העלויות שמוגדר כברירת מחדל. המסלול הקצר יותר לא בהכרח יהיה המסלול הקצר באופן מוחלט, כי יכול להיות שהאפשרות הזו לא תהיה חלופה טובה. לדוגמה, אם המסלול הקצר ביותר הוא באורך 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);
מסלולים שכוללים מעבורות
כברירת מחדל, 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 | הצגת המרחק שנותר. |
דוגמה
בדוגמה הבאה של קוד אפשר לראות איך מגדירים את הפורמט של קריאה ל-callout של מסלול.
mNavFragment.setRouteCalloutInfoFormat(RouteCalloutInfoFormat.TIME);