Navigation SDK ל-iOS מציע דרכים משופרות לציין נקודות ציון, וכך מספק ניתוב מדויק יותר וחוויית הגעה טובה יותר, במיוחד ליעדים עם כמה כניסות או נקודות גישה ספציפיות. אפשר להפנות למיקומים מדויקים באמצעות navigationPointToken או על ידי שילוב של קואורדינטות מיקום עם מזהה מקום כדי להוסיף הקשר.
התכונה להדגשת היעד תמשיך לפעול אם היא רלוונטית.
רקע
לפני גרסה 10.10, יכולתם להגדיר Waypoint באמצעות קואורדינטות של מיקום או מזהה מקום. לפעמים ניווט שמבוסס רק על קו רוחב וקו אורך יכול להוביל לנקודות לא אופטימליות להורדה או לאיסוף, במיוחד במקומות גדולים, בפארקים או בבניינים עם כמה כניסות. יכול להיות שהתוצאה תתמקם על קטע הכביש הקרוב ביותר, וזה לא תמיד יהיה המיקום הכי נוח או הכי נכון.
כדי לפתור את הבעיה הזו, הוספנו אפשרויות מתקדמות לנקודות ציון, שמאפשרות לספק יותר הקשר.
שימוש בטוקן של נקודת ניווט
כדי לקבל מסלול מדויק ביותר לנקודות גישה ספציפיות כמו כניסות, רציפי טעינה או אזורים ייעודיים לאיסוף, אפשר להשתמש בnavigationPointToken.
הטוקן הזה מתקבל על ידי קריאה לשיטה Destinations של Geocoding API. הוא מייצג נקודת ניווט ספציפית שאפשר להגיע אליה, שמשויכת למקום.
כדי לציין טוקן של נקודת ניווט:
מקבלים
navigationPointTokenמהתשובה של Destinations method of the Geocoding API.מציינים את
navigationPointTokenכשיוצריםGMSNavigationWaypoint.
הערה: אי אפשר לציין בו-זמנית טוקן של נקודת ניווט יחד עם מיקום ומזהה מקום.
Swift
// Create a waypoint using a navigation endpoint token
let waypointTwo = GMSNavigationWaypoint(
navigationPointToken: "ChIJALijSXPhQkARHmIozCCbXsASEgkFVjYHGH6PgBFrbM7wl3.."
title: "Sydney Opera House")
// Route to the waypoint
navigator.setDestinations([waypointTwo]) { [weak self] routeStatus in
self?.handleRouteCallback(status: routeStatus)
}
Objective-C
GMSNavigationWaypoint *waypointTwo = [[GMSNavigationWaypoint alloc] initWithNavigationPointToek:@"sampleNavigationPointToken"
שילוב של מזהה מקום ומיקום
החל מגרסה 10.10, אפשר לספק גם מזהה מקום וגם קואורדינטות של מיקום כשיוצרים נקודת ציון. השיטה הזו שימושית כשרוצים לציין נקודה מדויקת (המיקום) ועדיין לספק את ההקשר של המקום הכולל (מזהה המקום). כך, Navigation SDK יכול לספק חוויית הגעה עשירה יותר על ידי הדגשת בניין היעד או הצגת נקודות עניין סמוכות שקשורות למזהה המקום.
Swift
// Create a waypoint using both the latlng and placeID
let waypoint = GMSNavigationWaypoint(
location: CLLocationCoordinate2DMake(-33.85657945261524, 151.21535034203333),
placeID: "ChIJ3S-JXmauEmsRUcIaWtf4MzE",
title: "Sydney Opera House")
// Route to the waypoint
navigator.setDestinations([waypoint]) { [weak self] routeStatus in
self?.handleRouteCallback(status: routeStatus)
}
Objective-C
CLLocationCoordinate2D location = CLLocationCoordinate2DMake(47.67, -122.20);
GMSNavigationWaypoint *waypoint = [[GMSNavigationWaypoint alloc] initWithLocation:placeID:coordinate title:@"waypoint from location and placeiD"];
שיקולים:
כשמספקים גם את placeID וגם את location:
- המסלול מיועד בעיקר ל
locationשצוין. - המיקום שלכם ב-
placeIdמשמש כהקשר לשיפור חוויית ההגעה. - גיבוי: אם ערכת ה-SDK קובעת שהערך של
placeIdתואם לתכונה שרחוקה מדי מהערך שלlocation, המערכת תתעלם מהערך שלplaceId. בתרחיש הזה, הניתוב ימשיך רק אלlocation, והשיפורים בחוויית ההגעה למקום הספציפי לא יהיו זמינים.
סיכום של הגדרות תקפות של נקודות ציון
| מפרט | location |
placeID |
navigationPointToken |
התנהגות הניתוב | הדגשת היעד |
|---|---|---|---|---|---|
| קואורדינטות של מיקום בלבד | הוגדר | נעדר/ת | נעדר/ת | מסלולים למקטע הכביש הקרוב ביותר לקואורדינטות שהוגדרו | הערך הזה מוצג אם אפשר להסיק את היעד ברמת ודאות גבוהה |
| מזהה מקום בלבד | נעדר/ת | הוגדר | נעדר/ת | מסלולים לנקודת הניווט שמוגדרת כברירת מחדל למזהה המקום | מזהה מקום היציאה |
| רק טוקן של נקודת ניווט | נעדר/ת | נעדר/ת | הוגדר | מסלולים לנקודת הניווט המדויקת שמיוצגת על ידי הטוקן | מהיעד שמוגדר בבקשה המקורית של השיטה destinations של Geocoding API |
| קואורדינטות של מיקום ומזהה מקום משולבים | se | הוגדר | נעדר/ת | מסלולים למקטע הכביש הקרוב ביותר לקואורדינטות שהוגדרו | ממזהה המקום, אבל לא מוצג אם מזהה המקום רחוק מדי מקואורדינטות הרוחב/האורך |