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

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

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

דוגמה

בדוגמה הבאה של קוד אפשר לראות איך מגדירים את הפורמט של קריאה ל-callout של מסלול.

Swift

self.mapView.routeCalloutFormat = .time

Objective-C

_mapView.routeCalloutFormat = GMSNavigationRouteCalloutFormatTime;