תכנון מסלול

לפעמים תרצו לתכנן את המסלול שהאפליקציה שלכם מספקת למשתמשים. שימוש בטוקן מסלול מ-Routes API, מ-Routes Preferred API או מ-Route Optimization API יכול לעזור לכם לציין שני דברים במסלול המתוכנן:

  • קו פוליגוני של המסלול

  • היעדים של המסלול

לדוגמה, הנה כמה דוגמאות ליעדי ניתוב אפשריים:

  • צמצום זמן המשלוח: עסק שמספק משלוחי אוכל יכול לצמצם את הזמן שלוקח לשלוח את האוכל.

  • צמצום זמן הנסיעה או צריכת הדלק: עסק לוגיסטי יכול לשפר את היעילות של הנהגים שלו ולהפחית את עלויות הדלק.

  • צמצום הזמן עד להגעה ליעד: למשל, אם אתם מפעילים שירות של שליחת טכנאים, אולי תרצו לצמצם את הזמן שלוקח לטכנאים להגיע למקום שבו הם צריכים לבצע את העבודה.

  • הוזלת עלויות ושיפור הבטיחות: עסק של נסיעות משותפות יכול למצוא מסלול שעלותו נמוכה יותר לנוסעים, ולהימנע מאזורים מסוימים מטעמי בטיחות.

מידע נוסף על תכנון מסלול באמצעות טוקן מסלול זמין במאמר קבלת טוקן מסלול ב-Routes API ובמאמר מעבר בין קווים פוליגוניים וטוקנים של מסלולים ב-Route Optimization API.

למה כדאי להשתמש בטוקן מסלול כדי להגדיר יעדי מסלול

אסימון מסלול מ-Routes API, מ-Routes Preferred API או מ-Route Optimization API מאפשר לכם לשלוט טוב יותר במסלול שמוצג:

  • תכנון מסלול מראש לשימוש ב-Navigation SDK.

  • בחירת המסלול הכי טוב לשימוש ב-Navigation SDK. אם אתם מבקשים טוקנים של מסלולים כשאתם יוצרים מסלולים ב-Routes API, אתם מקבלים טוקן לכל מסלול שנוצר. לאחר מכן, תוכלו לבחור את הטוקן של המסלול שבו אתם רוצים להשתמש כשאתם מעבירים אותו ל-Navigation SDK.

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

  • להגדיר יעדי מסלול מתקדמים יותר, כמו מסלול ידידותי לסביבה או המסלול הקצר ביותר.

איך פועלים אסימוני מסלול

אתם יכולים להשתמש ב-Routes API, ב-Routes Preferred API או ב-Route Optimization API כדי לתכנן מסלול באמצעות יעדי מסלול. אתם יכולים להעביר טוקן מסלול שמוחזר מכל אחד מממשקי ה-API האלה ל-Navigation SDK כדי להנחות את אופן הניווט של הרכב.

זה מה שקורה כשמבקשים טוקן מסלול ומשתמשים בו:

  1. ‫Routes API,‏ Routes Preferred API או Route Optimization API מחזירים אסימון מסלול מוצפן שכולל את הקו הפוליגוני של המסלול ואת יעדי המסלול.

  2. אתם מעבירים את הטוקן של המסלול אל Navigation SDK.

  3. ‫Navigation SDK מתחיל את הניווט במסלול המתוכנן, גם אם יש מסלול מהיר יותר.

  4. במהלך הנסיעה, אם תנאי התנועה או הכביש משתנים, או אם הרכב סוטה מהמסלול המתוכנן, ה-Navigation SDK מחשב מסלול חדש בהתאם ליעדי המסלול ולאפשרויות המסלול שהוגדרו בטוקן המסלול.

התהליך הזה מאפשר לכם להגיע למסלול בפועל שיהיה הכי קרוב למסלול שתכננתם.

למה לפעמים המסלול המתוכנן לא מדויק

הניווט מתחיל במסלול המתוכנן, אבל המסלול בפועל יכול להיות שונה במצבים כמו:

  • הרכב מתחיל את הנסיעה מחוץ לנקודת ההתחלה המתוכננת.
  • מצב התנועה או הכביש משתנה במהלך הנסיעה.
  • הרכב סוטה מהמסלול המתוכנן.

ההבדלים האלה יכולים להשפיע על המרחק, על זמן ההגעה המשוער ועל מאפיינים חשובים אחרים של הנסיעה שתכננתם.

תכנון מסלול באמצעות טוקן מסלול

כדי לתכנן מסלול, אתם יכולים ליצור טוקן מסלול ואז להעביר אותו ל-Navigation SDK, כמו שמתואר בשלבים הבאים:

שלב 1: יוצרים אסימון מסלול באמצעות Routes API,‏ Routes Preferred API או Route Optimization API

  1. מבקשים טוקן מסלול באחת מהשיטות הבאות:

  2. מגדירים את הבקשה ל-Routes API או ל-Routes Preferred API כך שתעמוד בדרישות לשימוש בטוקן מסלול:

    • מגדירים את travelMode לערך DRIVE או TWO_WHEELER.
    • מגדירים את routingPreference לערך TRAFFIC_AWARE או TRAFFIC_AWARE_OPTIMAL.
    • אל תשתמשו ב-Via נקודות ציון.

שלב 2: מעבירים את אסימון המסלול ל-Navigation SDK

  1. אחסון הטוקן של המסלול: ב-Navigation SDK, מגדירים מחרוזת לאחסון הטוקן של המסלול. לדוגמה:

    let routeToken = "route token returned by Routes API"
    

    דוגמה לטוקן מסלול שמוחזר:

    {
    // Other fields
    "routeToken": "CqMBCjoKCJQOor5DHcwiEhBon3XpHXFnVvDeWMwd9PpAGgz6wtnFDKIBrAHTARpCApUDSggAAAAACjcrP3gBEAQaTApKChgKDQoCCAERAAAAAACAZkAR3SQGgZUXdUASEggAEAMQBhATEBIYAkIEGgIIBSIYChZ2VEJiWlBPSkk1aU5wUVRzNTV5d0FRKAEiFQBcJuds-Efh-2QZhOMTtUCCxEVL_g",
    }
    
  2. מעבירים את הטוקן של המסלול ל-Navigation SDK באמצעות mapView.navigator.setDestinations. מציינים את אותן נקודות ציון של היעד שבהן השתמשתם כשיצרתם את אסימון המסלול:

    mapView.navigator?.setDestinations([waypoint1, waypoint2], routeToken: routeToken, callback: {...})
    

    ה-method‏ setDestinations מעבירה את סטטוס הבקשה ל-callback שלה. אם נמצא מסלול ממיקום המשתמש ליעד שצוין, הסטטוס הוא .OK (GMSRouteStatusOK).

תרחישים עם כמה עצירות

אפשר להגדיר עד 25 ציוני דרך.

אמצעי התחבורה setDestinations לא תומך בנסיעות עם כמה עצירות. משתמשים ב-continueToNextDestinationWithCompletion() כדי להעביר את נקודת הציון לחלק הבא של הנסיעה.

דוגמה

בדוגמאות הקוד הבאות מוסבר איך לאחזר מסלול מתוכנן.

Swift

let location = CLLocationCoordinate2D(latitude: 47.67, longitude: -122.20)
let waypoint1 = GMSNavigationWaypoint(location: location, title: "waypoint from location")!
let waypoint2 = GMSNavigationWaypoint(placeID: "samplePlaceID", title: "waypoint from Place ID")!

let routeToken = "route token returned by Routes API"
mapView.navigator?.setDestinations([waypoint1, waypoint2], routeToken: routeToken, callback: {...})

Objective-C

CLLocationCoordinate2D location = CLLocationCoordinate2DMake(47.67, -122.20);
GMSNavigationWaypoint *waypoint1 = [[GMSNavigationWaypoint alloc] initWithLocation:location title:@"waypoint from location"];
GMSNavigationWaypoint *waypoint2 = [[GMSNavigationWaypoint alloc] initWithPlaceID:@"samplePlaceID"
                                                                            title:@"waypoint from Place ID"];
NSString *routeToken = @"route token returned by Routes API";

[mapView.navigator setDestinations:@[waypoint1, waypoint2]
                        routeToken:routeToken
                          callback:^(GMSRouteStatus routeStatus){...}];

איך טוקנים של מסלולים ו-Navigation SDK פועלים יחד

כך ה-Navigation SDK מטפל במסלול המתוכנן:

  • שימוש באפשרויות הניתוב שמוגדרות בטוקן המסלול במקום בהגדרות הבאות באפליקציה, כולל כשהיא מחשבת מסלול חדש במהלך הנסיעה:

    • avoidsHighways
    • avoidsTolls
    • avoidsFerries
    • licensePlateRestriction
    • אמצעי ההגעה שמוגדר באפליקציה
  • פועלת לפי ההגדרות האלה כשהיא מחשבת או משנה את המסלול:

    • יעדי מסלול מהאסימון של המסלול, כמו מסלול ידידותי לסביבה או המסלול הקצר ביותר. אם צריך לשנות את המסלול ב-Navigation SDK, המערכת משתמשת ביעדי המסלול שציינתם כשביקשתם את האסימון של המסלול.

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