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