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