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