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