ניתוב לנקודות ניווט

‫Navigation SDK ל-iOS מציע דרכים משופרות לציין נקודות ציון או נקודות ניווט, ומספק ניתוב מדויק יותר וחוויית הגעה טובה יותר, במיוחד ליעדים עם כמה כניסות או נקודות ניווט ספציפיות. אפשר להשתמש ב-navigationPointToken כדי להגיע למיקומים מדויקים. זהו מחרוזת שמקודדת מיקום והקשר נוסף של המסלול. אפשר גם לשלב בין קואורדינטות של קווי אורך ורוחב לבין מזהה מקום כדי להוסיף הקשר.

רקע

לפני גרסה 10.10, יכולתם להגדיר Waypoint באמצעות קואורדינטות של מיקום או מזהה מקום. לפעמים ניווט לפי קו רוחב וקו אורך בלבד יכול להוביל לנקודות לא אופטימליות להורדה או לאיסוף, במיוחד במקומות גדולים, בפארקים או בבניינים עם כמה כניסות. יכול להיות שהתוצאה תתמקם על קטע הכביש הקרוב ביותר, אבל יכול להיות שזו לא נקודת הגישה הנוחה או הנכונה ביותר.

כדי לפתור את הבעיה הזו, הוספנו אפשרויות משופרות לנקודות ציון, שמאפשרות לספק יותר הקשר.

שימוש בטוקן של נקודת ניווט

כדי לקבל את המסלול המדויק ביותר לנקודות גישה ספציפיות כמו כניסות, רציפי טעינה או אזורים ייעודיים לאיסוף, אפשר להשתמש בnavigationPointToken.

הטוקן הזה מתקבל על ידי קריאה לשיטת היעדים של Geocoding API. הוא מייצג נקודת ניווט ספציפית שאפשר להגיע אליה, שמשויכת למקום.

כדי לציין טוקן של נקודת ניווט:

  1. מקבלים navigationPointToken מהתשובה של Destinations method of the Geocoding API.

  2. מציינים את 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"

שימוש בטוקנים של נקודות ניווט ובטוקנים של מסלולים

אפשר לאחזר טוקן של נקודת ניווט דרך 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 הוגדר נעדר/ת מסלולים למקטע הכביש הקרוב ביותר לקואורדינטות שהוגדרו ממזהה המקום, אבל לא מוצג אם מזהה המקום רחוק מדי מקואורדינטות הרוחב/האורך