חישובי מסלולים (כולל ניתוב מחדש) מחזירים את המסלול שייקח את הכמות הכי קטנה של זמן ניווט כמסלול ברירת המחדל הטוב ביותר. אבל אפשר לשנות את אסטרטגיית הניתוב כך שבמקום זאת תוצג האפשרות הקצרה יותר מבין חלופות המסלול.
המונח קצר יותר מתייחס למסלול הקצר ביותר מבין המסלולים האופטימליים, על סמך מודל העלויות שמוגדר כברירת מחדל. המסלול הקצר יותר לא בהכרח יהיה המסלול הקצר ביותר באופן מוחלט, כי יכול להיות שהאפשרות הזו לא תהיה חלופה טובה. לדוגמה, אם המסלול הקצר ביותר הוא באורך 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מציג את המרחק שנותר. |
דוגמה
בדוגמה הבאה של קוד אפשר לראות איך מגדירים את הפורמט של קריאה ל-callout של מסלול.
Swift
self.mapView.routeCalloutFormat = .time
Objective-C
_mapView.routeCalloutFormat = GMSNavigationRouteCalloutFormatTime;