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

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

רקע

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

האפשרויות המשופרות של נקודות הדרך נותנות מענה לבעיה הזו ומאפשרות לספק יותר הקשר.

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

כדי לקבל את המסלול המדויק ביותר לנקודות ניווט ספציפיות כמו כניסות, רציפי טעינה או אזורי איסוף ייעודיים, אתם יכולים להשתמש ב-navigationPointToken. כדי לקבל את האסימון הזה, צריך להפעיל את ה-method‏ destinations של Geocoding API. הוא מייצג נקודת ניווט ספציפית שניתן לנתב אליה, שמשויכת למקום.

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

  1. מקבלים navigationPointToken מהתגובה של ה-method‏ Destinations ב-Geocoding API.
  2. יוצרים Waypoint באמצעות ה-method‏ setNavigationPointToken() ב-builder.
// Assuming 'navPointToken' is a String obtained from the destinations method of the Geocoding API
// Assuming 'destinationName' is a String title for the waypoint

Waypoint waypointWithToken = Waypoint.builder()
    .setTitle(destinationName)
    .setNavigationPointToken(navPointToken)
    .build();

// Use this waypoint in navigator.setDestinations()

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

אתם יכולים לאחזר טוקן של נקודת ניווט דרך Geocoding API, לאחזר טוקן של מסלול מ-Routes API, ואז להעביר את הטוקן של נקודת הניווט ואת הטוקן של המסלול אל Navigation SDK. האפשרות הזו שימושית בתרחישים כמו נסיעה שיתופית או משלוח, שבהם משתמשים ב-Routes API כדי לחשב את מחיר הנסיעה ורוצים את הדיוק של טוקן נקודת הניווט.

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

במאמרי העזרה של Routes API מוסבר איך מציינים מיקום באמצעות אסימון של נקודת ניווט ואיך יוצרים אסימון של מסלול. במאמר תכנון מסלול מוסבר איך לתכנן מסלול באמצעות טוקן מסלול.

בתרשים הזה מוצג איך אפליקציה לנסיעות שיתופיות או למשלוחים משתמשת בטוקנים של נקודות ניווט ובטוקנים של מסלולים ביחד:

תרשים של תרחיש לדוגמה של נסיעה שיתופית או משלוח
תרשים של תרחיש לדוגמה של נסיעה שיתופית או משלוח

שילוב של מזהה מקום וקווי רוחב ואורך

החל מגרסה 7.4, אפשר לספק גם מזהה מקום וגם קואורדינטות של קו רוחב וקו אורך כשיוצרים Waypoint. השיטה הזו שימושית כשרוצים לציין נקודה מדויקת (קו הרוחב/קו האורך) ועדיין לספק את ההקשר של המקום הכולל (מזהה המקום). כך ה-Navigation SDK יכול לספק חוויית הגעה עשירה יותר על ידי הדגשת מבנה היעד או הצגת נקודות עניין קרובות שקשורות למזהה המקום.

// Assuming 'placeId' is the Place ID String
// Assuming 'lat' and 'lng' are the double values for latitude and longitude
// Assuming 'destinationName' is a String title for the waypoint

Waypoint waypointWithPlaceIdAndLatLng = Waypoint.builder()
    .setTitle(destinationName)
    .setPlaceIdString(placeId)
    .setLatLng(lat, lng)
    .build();

// Use this waypoint in navigator.setDestinations()

שיקולים

כשמציינים גם את placeId וגם את latlng:

  • המסלול מטרגט בעיקר את latlng שצוין.
  • ה-placeId משמש כהקשר לשיפור חוויית ההגעה.
  • חלופה: אם ערכת ה-SDK קובעת שהערך של placeId שסופק תואם לתכונה שנמצאת רחוק מדי מהערך של latlng, המערכת תתעלם מהערך של placeId. בתרחיש הזה, הניווט ימשיך אל latlng בלבד, והשיפורים בחוויית ההגעה הספציפית למקום לא יהיו זמינים.

סיכום של הגדרות תקינות של נקודות ציון

שיטה setLatLng() setPlaceIdString() setNavigationPointToken() התנהגות הניתוב הדגשת היעד
רק קואורדינטות של קו רוחב/אורך הוגדר לא קיים לא קיים מסלולים למקטע הכביש הקרוב ביותר לקואורדינטות שהוגדרו מוצג אם אפשר להסיק את היעד ברמת סבירות גבוהה
מזהה מקום בלבד לא קיים הוגדר לא קיים מסלולים לנקודת הניווט שמוגדרת כברירת מחדל למזהה המקום מזהה המקום של מיקום היציאה
רק אסימון של נקודת ניווט לא קיים לא קיים הוגדר מסלולים לנקודת הניווט המדויקת שמיוצגת על ידי הטוקן מנקודת המוצא שהוגדרה בבקשה המקורית של השיטה destinations ב-Geocoding API
שילוב של קואורדינטות של קו הרוחב/קו האורך ומזהה המקום הוגדר הוגדר לא קיים מסלולים למקטע הכביש הקרוב ביותר לקואורדינטות שהוגדרו ממזהה המקום, אבל לא מוצג אם מזהה המקום רחוק מדי מהקואורדינטות של קו הרוחב/האורך