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