ניהול ציוני דרך

במסמך הזה מוסבר איך לנהל העדפות של ציוני דרך באפליקציה באמצעות שתי תכונות:

  • העדפות המסלול בצד הדרך
  • עצירת ביניים

הגדרת הצד של העדפת המסלול בדרך

כברירת מחדל, ה-SDK של הניווט ל-iOS מוצא את המסלול המהיר ביותר לנקודת ציון, אבל לא מובטח שהרכב יגיע לצד הכביש שהצרכן מחכה עליו. התכונה Side of Road Routing Routing מאפשרת להבטיח שהרכב יגיע לצד הנכון של הכביש.

איך זה עובד

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

העדפה לאותו צד של הכביש

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

(nullable instancetype)initWithLocation:(CLLocationCoordinate2D)location
                                  title:(NSString *)title
                   preferSameSideOfRoad:(BOOL)preferSameSideOfRoad;

כותרת הפלח המועדף

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

(nullable instancetype)initWithLocation:(CLLocationCoordinate2D)location
                                  title:(NSString *)title
                preferredSegmentHeading:(int32_t)preferredSegmentHeading;

ה-SDK של הניווט בוחר את קטע הדרך הקרוב ביותר לנקודת הדרך, עם כיוון נתיב שמתכוונן (ב-55 מעלות +/-) לצד הכביש שבו נמצאת ציוני הדרך.

הגדרת העדפה לעצירת ביניים

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

איך זה עובד

כשאתם יוצרים את ציון הדרך של העצירה, אתם מגדירים העדפה לעצירת ביניים. כדי לעשות זאת, מגדירים את ההעדפה לעצירת ביניים ב-GMSNavigationMutableWaypoint, כמו בדוגמה הבאה:

Swift

let location = CLLocationCoordinate2D(latitude: 47.67, longitude: -122.20)
let waypoint = GMSNavigationMutableWaypoint(location: location, title: "waypoint from location")!
waypoint.vehicleStopover = true
mapView.navigator?.setDestinations([waypoint], routingOptions: routingOptions, callback: {...})

Objective-C

CLLocationCoordinate2D location = CLLocationCoordinate2DMake(47.67, -122.20);
GMSNavigationMutableWaypoint *waypoint =
    [[GMSNavigationMutableWaypoint alloc] initWithLocation:location
                                                     title:@"waypoint from location"];
waypoint.vehicleStopover = YES;
[_mapView.navigator setDestinations:@[waypoint1]
                     routingOptions:routingOptions
                           callback:^(GMSRouteStatus routeStatus){...}];