Navigation SDK ל-Android מציע דרכים משופרות לציין נקודות ציון או נקודות ניווט, ומספק ניתוב מדויק יותר וחוויית הגעה טובה יותר, במיוחד ליעדים עם כמה כניסות או נקודות ניווט ספציפיות. אפשר להשתמש ב-navigationPointToken כדי להגיע למיקומים מדויקים. זהו מחרוזת שמקודדת מיקום והקשר נוסף של המסלול. אפשר גם לשלב בין קואורדינטות של קווי אורך ורוחב לבין מזהה מקום כדי להוסיף הקשר.
רקע
לפני גרסה 7.4, אפשר היה להגדיר Waypoint באמצעות קואורדינטות של קו רוחב וקו אורך או מזהה מקום. לפעמים, ניתוב רק לפי קו רוחב וקו אורך יכול להוביל לנקודות הורדה או איסוף לא אופטימליות, במיוחד במקומות גדולים, בפארקים או בבניינים עם כמה כניסות. יכול להיות שהתוצאה תתעדכן אוטומטית לקטע הכביש הקרוב ביותר, אבל יכול להיות שזו לא נקודת הניווט הנוחה או הנכונה ביותר.
כדי לפתור את הבעיה הזו, הוספנו אפשרויות משופרות לנקודות ציון שמאפשרות לספק יותר הקשר.
שימוש בטוקן של נקודת ניווט
כדי לקבל מסלול מדויק ביותר לנקודות ניווט ספציפיות כמו כניסות, רציפי פריקה או אזורים ייעודיים לאיסוף, אפשר להשתמש בnavigationPointToken. האסימון הזה מתקבל על ידי קריאה לשיטת היעדים של Geocoding API. הוא מייצג נקודת ניווט ספציפית שאפשר להגיע אליה, שמשויכת למקום.
כדי לציין טוקן של נקודת ניווט:
- מקבלים
navigationPointTokenמהתשובה של Destinations method of the Geocoding API. - יוצרים
Waypointבאמצעות ה-methodsetNavigationPointToken()בכלי ליצירה.
הערה: כשמשתמשים ב-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 |
| קואורדינטות של קו רוחב/קו אורך ומזהה מקום ביחד | הוגדר | הוגדר | נעדר/ת | מסלולים למקטע הכביש הקרוב ביותר לקואורדינטות שהוגדרו | ממזהה המקום, אבל לא מוצג אם מזהה המקום רחוק מדי מקואורדינטות הרוחב/האורך |