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