חישובי המסלול (כולל שינוי מסלול) מחזירים את המסלול שלוקח הכי פחות זמן לנווט בו בתור המסלול הטוב ביותר שמוגדר כברירת מחדל. אבל אתם יכולים לשנות את אסטרטגיית הניתוב כך שהמסלול הקצר יותר מבין החלופות יוחזר במקום זאת.
המונח קצר יותר מתייחס למסלול הקצר ביותר מבין המסלולים האופטימליים, על סמך מודל העלות שמוגדר כברירת מחדל. יכול להיות שהמסלול הקצר יותר הוא לא המסלול הקצר ביותר באופן מוחלט, כי האפשרות הזו יכולה להיות חלופה לא טובה. לדוגמה, אם המסלול הקצר ביותר הוא באורך 10 ק"מ וזמן הנסיעה בו הוא 50 דקות, ויש מסלול אחר באורך 15 ק"מ אבל זמן הנסיעה בו הוא רק 20 דקות, האפשרות השנייה היא האופטימלית, כי לא כדאי להוסיף 30 דקות לנסיעה כדי לחסוך 5 ק"מ.
אחרי שמגדירים את אסטרטגיית המסלול לנסיעה, היא לא משתנה עד שהנסיעה מסתיימת. כדי לשנות את אסטרטגיית הניתוב של נסיעה קיימת, צריך למחוק את היעדים ולהגדיר אותם מחדש עם אסטרטגיית הניתוב החדשה.
מתבצעת קבלת פרטי המסלול
כדי לקבוע איזו אסטרטגיית מסלול היא הבחירה האופטימלית לנקודת דרך נתונה, צריך להפעיל את getRouteInfoForDestination() כדי לקבל את פרטי המסלול גם של המסלול הטוב ביותר שמוגדר כברירת מחדל וגם של המסלול הקצר ביותר. הפרטים כוללים את משך הנסיעה והמרחק לציון הדרך של היעד.
הפרטים האלה מגיעים מהשדה
GMSNavigationRouteInfo
ב-callback.
דוגמה
בדוגמת הקוד הבאה מוסבר איך לקבל פרטי מסלול לכל אחת משתי אסטרטגיות הניתוב.
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
הפורמט של נכס היתרונות המרכזיים של המסלול
במסגרת אסטרטגיית הניתוב של המסלול הקצר יותר, מוצגים הסברים עם פרטי המרחק לאורך המסלול. אבל אתם יכולים להשתמש בתוספי היתרונות המרכזיים של זמן ההגעה המשוער.
הגדרת הפורמט של הסבר המסלול
אפשר לשנות את הפורמט של תיאור המסלול באמצעות הגדרת routeCalloutFormat ב-GMSMapView. routeCalloutFormat מקבל אחד מהערכים הבאים:
| ערך מספור | תיאור |
|---|---|
| GMSNavigationRouteCalloutFormatDefault | הצגת הזמן שנותר כשמשתמשים באסטרטגיית הניתוב של המסלול הטוב ביותר שמוגדרת כברירת מחדל. הצגת המרחק שנותר כשמשתמשים באסטרטגיית הניתוב "המסלול הקצר יותר" |
| GMSNavigationRouteCalloutFormatTime | הצגת הזמן שנותר. |
| GMSNavigationRouteCalloutFormatDistance | הצגת המרחק שנותר. |
דוגמה
בדוגמת הקוד הבאה מוסבר איך להגדיר את הפורמט של בקשת ה-gRPC.
Swift
self.mapView.routeCalloutFormat = .time
Objective-C
_mapView.routeCalloutFormat = GMSNavigationRouteCalloutFormatTime;