חישובי המסלולים (כולל שינוי מסלול) מחזירים את המסלול שבו זמן המסלול קצר ביותר בתור ברירת המחדל למסלול הטוב ביותר. עם זאת, אפשר לשנות את שיטת הניתוב כך שהמסלול הקצר מבין המסלולים החלופיים יוחזר במקום זאת.
המונח קצר יותר מתייחס למסלול הקצר ביותר מבין המסלולים האופטימליים, על סמך מודל העלות שמוגדר כברירת מחדל. יכול להיות שהמסלול הקצר יותר הוא לא המסלול הקצר ביותר, כי יכול להיות שהאפשרות הזו היא חלופה גרועה. לדוגמה, אם המסלול הקצר ביותר הוא 10 ק"מ והנסיעה בו נמשכת 50 דקות, ומסלול אחר הוא 15 ק"מ והנסיעה בו נמשכת רק 20 דקות, האפשרות השנייה היא האופטימלית, כי לא כדאי להקדיש 30 דקות כדי לקצר את המסלול ב-5 ק"מ.
אחרי שמגדירים את שיטת הניתוב לנסיעה, היא לא משתנה עד שהנסיעה מסתיימת. כדי לשנות את שיטת הניתוב של נסיעה קיימת, צריך למחוק את היעדים ולאפס אותם מחדש עם שיטת הניתוב החדשה.
הצגת פרטי המסלול
כדי לקבוע איזו שיטת מסלול היא הבחירה האופטימלית לנקודת ציון מסוימת, צריך להפעיל את הפונקציה getRouteInfoForDestination()
כדי לקבל את פרטי המסלול של המסלול הטוב ביותר שמוגדר כברירת מחדל ושל המסלול הקצר ביותר. הפרטים כוללים את משך הזמן ואת המרחק לנקודת ציון ביעד.
הפרטים האלה מגיעים מ-GMSNavigationRouteInfo
בשיחת החזרה.
דוגמה
דוגמת הקוד הבאה ממחישה איך לקבל את פרטי המסלול לכל אחת משתי אסטרטגיות הניתוב.
Swift
let routingOptions = GMSNavigationRoutingOptions()
navigator?.getRouteInfoForDestination(destination,
routingOptions: routingOptions) { routeInfo in
...
}
Objective-C
GMSNavigationRoutingOptions *routingOptions =
[[GMSNavigationRoutingOptions alloc] init];
[navigator getRouteInfoForDestination:destination
withRoutingOptions:routingOptions
callback:^(GMSNavigationRouteInfo *routeInfo){...}];
הגדרת אסטרטגיית הניתוב
אפשר להגדיר את אסטרטגיית הניתוב באמצעות GMSNavigationRoutingOptions
, ולהגדיר את routingStrategy
כשקוראים ל-setDestinations()
.
הערך של routingStrategy
יכול להיות אחד מערכי המנייה הבאים:
ערך ספירה | תיאור |
---|---|
GMSNavigationRoutingStrategyDefaultBest | דירוג המסלולים לפי מודל העלות שמוגדר כברירת מחדל ב-Navigation SDK. זוהי שיטת ברירת המחדל לניתוב. |
GMSNavigationRoutingStrategyShorter | דירוג הנתיבים לפי מרחק. המסלול עם הדירוג הגבוה ביותר הוא הקצר ביותר מבין המסלולים שהוחזרו. |
דוגמה
דוגמת הקוד הבאה מראה איך להגדיר את אסטרטגיית הניתוב של המסלול הקצר יותר.
Swift
let routingOptions = GMSNavigationRoutingOptions(routingStrategy: .shorter)
navigator?.setDestinations(destinations,
routingOptions: routingOptions) { routeStatus in
...
}
Objective-C
GMSNavigationRoutingOptions *routingOptions = [[GMSNavigationRoutingOptions alloc] initWithRoutingStrategy:GMSNavigationRoutingStrategyShorter];
[navigator setDestinations:destinations
routingOptions:routingOptions
callback:^(GMSRouteStatus routeStatus){...}];
מסלולים שכוללים מעבורות
כברירת מחדל, Navigation SDK ל-iOS לא כולל מסלולים שכוללים מעבורות. אם אתם מעדיפים לכלול אפשרויות של מעבורות כחלק מהמסלולים, תוכלו לשנות את העדפת הניתוב הזו כדי לחשוף את הנסיעה לקטעי מעבורת. לשם כך, מגדירים את avoidsFerries
בתור false
.
דוגמה
Swift
self.mapView.navigator?.avoidsFerries = false
Objective-C
self.mapView.navigator.avoidsFerries = NO
הפורמט של נכס היתרונות המרכזיים של המסלול
כשמשתמשים באסטרטגיית ניתוב למסלול קצר יותר, בחלוניות המידע לאורך המסלול מוצגים פרטי המרחק. במקום זאת, אפשר להשתמש בתוספי היתרונות המרכזיים של מודעות ה-ETA.
הגדרת הפורמט של ההודעה על המסלול
כדי לשנות את הפורמט של ההודעה על המסלול, מגדירים את routeCalloutFormat
בקטע GMSMapView
. הערך של routeCalloutFormat
יכול להיות אחד מערכי המנייה הבאים:
ערך ספירה | תיאור |
---|---|
GMSNavigationRouteCalloutFormatDefault | זמן הנסיעה שנותר כשמשתמשים בשיטת ברירת המחדל לניתוב לפי הנתיב הטוב ביותר. הצגת המרחק שנותר כשמשתמשים באסטרטגיית הניתוב למסלול הקצר יותר |
GMSNavigationRouteCalloutFormatTime | מוצג הזמן שנותר. |
GMSNavigationRouteCalloutFormatDistance | Dהמרחק שנותר. |
דוגמה
בדוגמת הקוד הבאה מוסבר איך להגדיר את הפורמט של הקריאה לפעולה בנתיב.
Swift
self.mapView.routeCalloutFormat = .time
Objective-C
_mapView.routeCalloutFormat = GMSNavigationRouteCalloutFormatTime;