חישובי מסלול (כולל ניתוב מחדש) מחזירים את המסלול שלוקח את משך הזמן הקצר ביותר לניווט, כברירת המחדל של המסלול הטוב ביותר. אבל אפשר לשנות את אסטרטגיית הניתוב כך שיוצגו במקום זאת האפשרויות הקצרות יותר מבין החלופות.
פירוש המונח shorter הוא המסלול הקצר ביותר מבין המסלול האופטימלי, על סמך מודל העלות שמוגדר כברירת מחדל. יכול להיות שהמסלול הקצר יותר לא יהיה המסלול המוחלט ביותר, כי האפשרות הזו עלולה להיות חלופה גרועה. לדוגמה, אם המסלול הקצר ביותר הוא 10 ק"מ והניווט נמשך 50 דקות, ומסלול אחר הוא 15 ק"מ אבל הניווט נמשך רק 20 דקות, האפשרות השנייה היא אופטימלית, כי חיסכון של 30 דקות בפחות חמישה ק"מ הוא לא פתרון טוב.
אחרי שמגדירים את אסטרטגיית הניתוב של הנסיעה, היא לא תשתנה עד לסיום הנסיעה. כדי לשנות את אסטרטגיית הניתוב של נסיעה קיימת, צריך למחוק את היעדים ולאפס אותם שוב עם אסטרטגיית הניתוב החדשה.
קבלת פרטי המסלול
כדי לקבוע איזו אסטרטגיית מסלול היא האפשרות האופטימלית לציון דרך נתון, צריך לקרוא לפונקציה 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 | מדרג מסלולים לפי מודל העלות המוגדר כברירת מחדל של ה-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){...}];
מסלולים שכוללים מעבורות
כברירת מחדל, ה-SDK של הניווט ל-iOS לא כולל מסלולים שכוללים מעבורות. אם אתם מעדיפים לכלול אפשרויות של מעבורת במסלולים, תוכלו לשנות את העדפת הניתוב כדי לחשוף את הנסיעה לקטעי המעבורת על ידי הגדרת avoidsFerries
לאפשרות false
.
דוגמה
Swift
self.mapView.navigator?.avoidsFerries = false
Objective-C
self.mapView.navigator.avoidsFerries = NO
הפורמט של היתרונות המרכזיים של המסלול
באסטרטגיית ניתוב המסלול הקצרה יותר, נכסי היתרונות המרכזיים לאורך המסלול מציגים את פרטי המרחק. אבל במקום זאת אפשר להשתמש בנכסי היתרונות המרכזיים של מודעות טקסט מורחבות.
הגדרת הפורמט של ההסבר למסלול
אפשר לשנות את הפורמט של נכסי היתרונות המרכזיים של המסלול, על ידי הגדרת routeCalloutFormat
ב-GMSMapView
. routeCalloutFormat
לוקחת את אחד מערכי המספור הבאים:
ערך המספור | תיאור |
---|---|
GMSNavigationRouteCalloutFormatDefault | הצגת הזמן שנשאר כשמשתמשים באסטרטגיית ברירת המחדל לניתוב המסלול הטובה ביותר. הצגת המרחק שנותר כשמשתמשים באסטרטגיית המסלול הקצרה יותר |
GMSNavigationRouteCalloutFormatTime | הצגת הזמן שנותר. |
GMSNavigationRouteCalloutFormatDistance | Dהצגת המרחק שנותר. |
דוגמה
דוגמת הקוד הבאה ממחישה איך להגדיר את הפורמט של הסבר על מסלול.
Swift
self.mapView.routeCalloutFormat = .time
Objective-C
_mapView.routeCalloutFormat = GMSNavigationRouteCalloutFormatTime;