שינוי העדפות הניתוב

חישובי המסלולים (כולל ניתוב מחדש) מחזירים את המסלול שבו משך הנסיעה קצר ביותר בתור מסלול ברירת המחדל הטוב ביותר. עם זאת, אפשר לשנות את שיטת הניתוב כך שתוחזר במקום זאת המסלול הקצר ביותר מבין המסלולים החלופיים.

המונח קצר יותר מתייחס למסלול הקצר ביותר מבין המסלולים האופטימליים, על סמך מודל העלות שמוגדר כברירת מחדל. יכול להיות שהמסלול הקצר יותר הוא לא המסלול הקצר ביותר, כי יכול להיות שהאפשרות הזו היא חלופה גרועה. לדוגמה, אם המסלול הקצר ביותר הוא 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;