Navigation SDK ל-iOS מציע דרכים משופרות לציין נקודות ציון או נקודות ניווט, וכך מספק מסלולים מדויקים יותר וחוויית הגעה טובה יותר, במיוחד ליעדים עם כמה כניסות או נקודות ניווט ספציפיות. אפשר לנווט למיקומים מדויקים באמצעות navigationPointToken, מחרוזת שמקודדת מיקום והקשר נוסף של המסלול. כדי להוסיף הקשר, אתם יכולים גם לשלב קואורדינטות של קווי רוחב ואורך עם מזהה מקום.
רקע
בגרסאות שקדמו לגרסה 10.10, אפשר היה להגדיר Waypoint באמצעות קואורדינטות של מיקום או מזהה מקום. לפעמים זה יעיל, אבל ניתוב שמבוסס רק על קווי רוחב ואורך יכול להוביל לנקודות איסוף או הורדה לא אופטימליות, במיוחד במקומות גדולים, בפארקים או בבניינים עם כמה כניסות. יכול להיות שהתוצאה תתיישר לפי מקטע הכביש הקרוב ביותר, שלא בהכרח יהיה נקודת הגישה הנוחה או הנכונה ביותר.
האפשרויות המשופרות של נקודות הדרך מאפשרות לכם לספק הקשר נוסף.
שימוש בטוקן של נקודת ניווט
כדי לקבל את המסלול המדויק ביותר לנקודות גישה ספציפיות כמו כניסות, רציפי טעינה או אזורי איסוף ייעודיים, אפשר להשתמש ב-navigationPointToken.
כדי לקבל את הטוקן הזה, צריך להפעיל את ה-method Destinations ב-Geocoding API. הוא מייצג נקודת ניווט ספציפית שניתן לנתב אליה, שמשויכת למקום.
כדי לציין טוקן של נקודת ניווט:
מקבלים
navigationPointTokenמהתגובה של ה-method Destinations ב-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] initWithNavigationPointToken:@"sampleNavigationPointToken"
title:@"Sydney Opera House"];
שימוש באסימונים של נקודות ניווט ובאסימונים של מסלולים
אתם יכולים לאחזר טוקן של נקודת ניווט דרך Geocoding API, לאחזר טוקן של מסלול מ-Routes API, ואז להעביר את הטוקן של נקודת הניווט ואת הטוקן של המסלול אל Navigation SDK. האפשרות הזו שימושית בתרחישים כמו נסיעה שיתופית או משלוח, שבהם משתמשים ב-Routes API כדי לחשב את מחיר הנסיעה ורוצים את הדיוק של טוקן נקודת הניווט.
באמצעות הטוקן של המסלול, ה-Navigation SDK מתחיל את הניווט באותו מסלול שבו השתמשתם כדי לחשב את המחיר. כך אפשר לצמצם את הסיכון שהנסיעה תתבצע במסלולים ארוכים או קצרים יותר, מה שעלול לגרום ל "הפתעות במחיר".
במאמרי העזרה של Routes API מוסבר איך מציינים מיקום באמצעות אסימון של נקודת ניווט ואיך יוצרים אסימון של מסלול. במאמר תכנון מסלול מוסבר איך לתכנן מסלול באמצעות טוקן מסלול.
בתרשים הזה מוצג איך אפליקציה לנסיעות שיתופיות או למשלוחים משתמשת בטוקנים של נקודות ניווט ובטוקנים של מסלולים ביחד:
שילוב של מזהה המקום והמיקום
החל מגרסה 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 | הוגדר | לא קיים | מסלולים למקטע הכביש הקרוב ביותר לקואורדינטות שהוגדרו | ממזהה המקום, אבל לא מוצג אם מזהה המקום רחוק מדי מהקואורדינטות של קו הרוחב/האורך |