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

‫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()

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

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