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

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

רקע

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

האפשרויות המשופרות של נקודות ציון לדרך מאפשרות לספק יותר הקשר.

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

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

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

  1. מקבלים navigationPointToken מהתשובה של Destinations method of the Geocoding API.
  2. יוצרים Waypoint באמצעות ה-method‏ setNavigationPointToken() בכלי ליצירת מבצעים.

הערה: כשמשתמשים ב-setNavigationPointToken(), אי אפשר להשתמש בו-זמנית ב-setLatLng() או ב-setPlaceIdString(). השיטות האלה הן בלעדיות ל-setNavigationPointToken().

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