שאלות נפוצות
עובדות לגבי המוצר
- איך צריכים תנאי SDK לניווט תוצג בהודעה בנוגע לשירות?
- באילו שפות אפשר להשתמש בהנחייה הקולית?
- האם נושא הגלגל האחורי נשמר בזמן הנהג לצאת ממצב הניווט?
- האם קווים פוליגוניים זמינים כשמפעילים אותם או לשנות מסלול?
- האם משתמשים באפליקציה זקוקים למפות Google? מותקן בנייד?
- האם ה-SDK לניווט יכול לזהות חנייה ליד מסעדות ויעדים אחרים?
- האם ערכת ה-SDK לניווט להציג את כיוון התנועה בנתיבים כשאתם מתקרבים לנקודת פנייה?
- איזו SDK של ניווט רק לקוחות של שירותי ניידות יכולים להשתמש בממשקי API?
בעיות
- ב-Xcode 12, אפליקציות לא שנוצרו בצורה נכונה עבור הסימולטור. איך פותרים את הבעיה?
GMSMapView
לא נטען.
רשת
נתונים
- האם אוכל לאחזר את כל עצירות/יעדים בנסיעה לפני התחלת המסלול?
- האם יש מסלול מפורט בתחילת מסלול?
- איך מתבצע זמן ההגעה המשוער (זמן הגעה משוער) נשלחה למשתמשי האפליקציה?
- האם
RoadSnappedLocationProvider
יכולים לשמש לקבלת את המיקום הנוכחי שהוצמד אם הניווט לא בחזית? - האם ערכת ה-SDK לניווט להגדיר גבולות וירטואליים?
- האם אוכל להשבית התראות כאשר אפליקציית הניווט פועלת ברקע?
התאמה אישית של ממשק המשתמש
- האם אפשר לצבוע את הקוד בצורה הטובה ביותר מה המסלול?
- האם ה-SDK לניווט יכול להציג את זמן ההגעה המשוער ליעד הסופי?
- איך אפשר להסתיר את העדכונים של זמן ההגעה המשוער?
- מהן ההתאמות האישיות של ממשק המשתמש זמין לכרטיסים מסוג 'כותרת עליונה' ו'כותרת תחתונה'?
ניתוב
- האם אפשר לספק מסלול ספציפי? לנהג/ת או להסיר מסלולים חלופיים?
- אפשר להציג לנהג/ת תווית אחרת ליעד מאשר מיקום היעד שמוגדר כברירת מחדל?
- האם אפשר להשתמש ב-Navigation SDK? לעקוב אחרי סטיות מנתיב מוגדר?
- האם הנהג יכול לצאת מהניווט בלי להשלים את המסלול?
סימולטור
תהליכי עבודה
עובדות לגבי המוצר
- האפליקציה שלך חייבת להטמיע תיבת דו-שיח עם תנאי ה-SDK לניווט של השירות שכל נהג צריך לאשר. תיבת הדו-שיח הזו מציגה לנהג/ת את ההזדמנות להסכים לתנאים ולהגבלות. קובץ טקסט של התנאים מסופק עם SDK הניווט.
- ב-Android, משתמשים ב
NavigationApi.showTermsAndConditionsDialog
שיטה להצגת תיבת הדו-שיח שמכילה את המונחים. - ב-iOS, התקשרו
GMSNavigationServices.showTermsAndConditionsDialogIfNeededWithCompanyName
. - כל השפות שנתמכות על ידי מפות Google לנייד מותאמות באופן אוטומטי זמין ל-Navigation SDK. למכשיר יש שפת מערכת שמוגדרת כברירת מחדל ואפליקציה לא יכולה לשנות את ההגדרה הזו. עם זאת, לאפליקציה יש גישה ליותר מ-70 שפות.
-
כן. ב-Android, לאחר ההפעלה,
LocationListener
ממשיך לפעול ברקע. האפליקציה ממשיכה להצמיד את המיקום לכביש ונשמרת עם הכיוון.ב-iOS, כדי להמשיך לקבל עדכוני מיקום לגבי המיקום והנשיאה ברקע, יש להטמיע צילום כביש ולהגדיר
allowsBackgroundLocationUpdates
עדYES
. -
כן. כשיוצרים או משנים מסלול, הפרמטר
RouteChangeListener
מספקת קווים פוליגוניים. - לא, ב-SDK לניווט אין צורך ב-Google Maps Mobile תותקן במכשיר.
- לא, ה-Navigation SDK לא מספק את הפונקציונליות הזו בזמן האימון.
- כן כיוון התנועה זמין ומוצג כברירת מחדל.
- איזה SDK של ניווט רק לקוחות של שירותי ניידות יכולים להשתמש בממשקי API?
-
יש מספר ממשקי API ב-Navigation SDK שמיועדים לשימוש רק על ידי לקוחות Mobility Services, ש-Google תחייב אותם על בסיס עסקה. אם אתם לא לקוחות של שירותי ניידות, השיטות הבאות הן ללא תפעול:
בעיות
- ב-Xcode 12, בניית אפליקציות לא תקינה עבור הסימולטור. איך פותרים את הבעיה?
-
כדי לפתור את הבעיה, צריך לפתוח את הגדרות Build של פרויקט Xcode ולהוסיף את
arm64
אלExcluded Architectures
ל'סימולטור iOS' build בלבד.מידע נוסף מופיע בשרשור הבא של StackOverflow.
- לא ניתן לטעון את GMSMapView.
-
אם ה-GMSMapView לא נטען:
- בודקים ש-NavSDK מופעל במסוף Cloud.
- אם ערכת ה-SDK של Nav מותקנת אבל בפרויקט שלך לא נעשה שימוש בממשקי API של Nav SDK, צריך להסיר אותה מהבינארי.
רשת
- איך ערכת הניווט SDK מטפלת בקישוריות באיכות ירודה?
- ה-Navigation SDK שומר מראש את המסלול לכל נסיעה. המידע שנשמר מראש כולל פרטי ניתוב ל-15-20 דקות, ומסלולים חלופיים למקרה שהנהג יסטה מהמסלול. ערכת ה-SDK לניווט מבצעת הערכה של המיקום באמצעות ה-GPS במכשיר מחיישנים.
- האם מצב אופליין זמין?
- לא, ב-Navigation SDK אין במצב אופליין באותו זמן; עם זאת, ה-SDK מספק מידע שנשמר מראש למסע.
נתונים
- האם אפשר לאחזר את כל העצירות או היעדים בנסיעה לפני שמתחילים את המסלול?
-
כן. ב-Android, כדי לאחזר את מסלול המסלול, התקשר
Navigator.getRouteSegments()
ב-iOS, קוראים לפונקציה
GMSNavigator.routeLegs(read)
. - האם ניתן לקבל הנחיות מפורטות לגבי המסלול בתחילת המסלול?
- כן SDK הניווט מספק רשימה של קטעי מסלול. בנוסף, הנהג יכול להחליק כדי לעבור בכרטיס המסלול שמופיע בכותרת. כדי לראות כל תמרון.
- איך זמן ההגעה המשוער מועבר למשתמשי האפליקציה?
-
ב-Android, פועלים לפי השלבים הבאים כדי לספק למשתמשי האפליקציה מידע על זמן ההגעה המשוער:
- אחזר את הזמן והמרחק של כל נקודות הדרך באמצעות
Navigator.getTimeAndDistanceList()
- העבר מידע זה לאפליקציית הלקוח כאשר אתה לעשות כרגע עבור זמן ההגעה המשוער לנהג.
ב-iOS, פועלים לפי השלבים הבאים כדי לספק למשתמשי האפליקציה מידע על זמן ההגעה המשוער:
- מאחזרים את הרגליים במסע באמצעות
Navigator.getRouteSegments()
- קוראים את
GMSNavigator.timeToNextDestination
לכל שלב במסע. - מעבירים את פרטי הזמן לאפליקציית הלקוח בזמן שאתם לעשות כרגע עבור זמן ההגעה המשוער לנהג.
- אחזר את הזמן והמרחק של כל נקודות הדרך באמצעות
-
האם אפשר להשתמש ב
RoadSnappedLocationProvider
כדי לקבל את המיקום הנוכחי שהוצמד, אם הניווט לא בחזית -
כן. ב-Android, האפליקציה
RoadSnappedLocationProvider
פועלת כברירת מחדל.ב-iOS, כדי שהניווט ימשיך לפעול ברקע, יש להטמיע את ה-listener עבור
GMSRoadSnappedLocationProviderListener
, ומגדירים את הנכסallowsBackgroundLocationUpdates
עדTRUE
. - האם ה-SDK לניווט תומך בגבולות וירטואליים?
-
לא. בהקשר של ניווט,
remainingTimeOrdistanceChangeListener
יש יתרון על פני גבולות וירטואליים פשוטים. ייתכן שהגבול הווירטואלי לא מביא בחשבון של הכביש, וייתכן שהיא לא תהיה במרכז הנקודה המדויקת שאליה הנהג/ת נמצא/ת בניווט.אפשר להעריך את הפונקציונליות הזו באמצעות
remainingTimeOrdistanceChangeListener
- מגדירים את הסף כדי לקבוע את תדירות הקריאות החוזרות.
- בודקים את המרחק שנותר ליעד.
לדוגמה, אם מגדירים את הסף ל-100 מ', תישלח שיחה חוזרת כשהמרחק ליעד משתנה למאה מ'. ככל שהמרחק יורד, אפשר לעדכן את הסף הזה לערך קטן יותר ולקבל קריאות חוזרות (callbacks) תכופים יותר. לאחר מכן בדקו את המרחק שנותר עד כדי לקבוע אם אתם קרובים מספיק לנקודת האיסוף/ההורדה.
ב-iOS, מטמיעים את ה-listener
GMSNavigatorListener.didUpdateRemainingDistance
כדי לנהל את המרחק בין ההתראות. - האם אפשר להשבית התראות כשאפליקציית הניווט פועלת ברקע?
-
כן. ב-Android, צריך להשתמש ב-
Navigator.setHeadsUpNotificationEnabled
כדי לשלוט בהתראות. ל-method הזה יש ארגומנט בוליאני.FALSE
השבתת התראות.TRUE
מפעיל התראות.ב-iOS, צריך להשבית את התראות הרקע לגבי מיקומים שנתפסו על ידי הגדרה של
GMSRoadSnappedLocationProvider.allowsBackgroundLocationUpdates
אל NOכדי להשבית את העיבוד ברקע של התראות מיקום אחרות, צריך להתקשר
GMSNavigator.sendsBackgroundNotifications(NO)
התאמה אישית של ממשק המשתמש
- האם אפשר להוסיף צבע לאפשרות המסלול הטובה ביותר?
- לא. אפשרות של מסלול בצבע ספציפי לא נתמכת כרגע.
- האם ב-SDK לניווט ניתן להציג את זמן ההגעה המשוער ליעד הסופי?
-
כן. ב-Android, משתמשים בשיטות הבאות:
- אחזר את הזמן והמרחק של כל נקודות הדרך באמצעות
Navigator.getTimeAndDistanceList()
- הסתרת זמן ההגעה המשוער של ציון הדרך הנוכחי באמצעות
NavigationFragment.setEtaCardEnabled(false)
- מעבדים את זמן ההגעה המשוער ליעד הסופי.
ב-iOS, משתמשים בפריטים הבאים:
- התקשרו אל
GMSNavigator.routeLegs(read)
. - בקטע האחרון, מתקשרים
GMSNavigator.timeToNextDestination
- הסתרת זמן ההגעה המשוער של ציון הדרך הנוכחי באמצעות
MSMapView.settings.navigationFooterEnabled=NO
ל-FALSE. - מעבדים את זמן ההגעה המשוער ליעד הסופי.
- אחזר את הזמן והמרחק של כל נקודות הדרך באמצעות
- איך אפשר להסתיר עדכונים של זמן הגעה משוער?
-
אפשר להשבית כרטיסי זמן הגעה משוער בדרכים הבאות:
- ב-Android, משתמשים ב-
navigationView.setEtaCardEnabled(false)
. - ב-iOS, משתמשים ב-
GMSMapView.settings.navigationFooterEnabled=NO
.
- ב-Android, משתמשים ב-
-
ב-Android, צריך להשתמש ב-
StylingOptions
כדי להגדיר את הרקע וסגנון צבעים. כדי להסתיר או להציג את הכותרת, וגם הכותרת התחתונה, יש להשתמש בsetHeaderEnabled
ובsetFooterEnabled
פונקציות של חבריםNavigationFragment
.ב-iOS, משתמשים
GMSMapView.settings.navigationHeaderPrimaryBackgroundColor
כדי להגדיר את עיצוב צבע הרקע. כדי להסתיר או להציג את הכותרת העליונה והכותרת התחתונה להשתמש ב-navigationFooterEnabled
ו-navigationHeaderEnabled
שלGMSUISettings
.
ניתוב
- אפשר לקבל מסלול ספציפי? לנהג/ת או להסיר מסלולים חלופיים?
- לא. כברירת מחדל יש כמה מסלולים, ולמסלול המהיר ביותר יש עדיפות. אפשר להשפיע על מסלול ברירת המחדל על ידי הוספת העדפות כמו 'להימנע' כבישים מהירים וכבישי אגרה, לבקשה שלכם. הוספת ציוני דרך משפיעה גם על המסלול.
- האם אפשר להציג למשתמש באפליקציה תווית יעד שונה מתווית ברירת המחדל את מיקום היעד?
-
כן. ב-Android, צריך ליצור
Marker
עם כותרת מותאמת אישית של היעד וקו האורך/רוחב. ה-SDK לניווט מציג את הכותרת המותאמת אישית והקואורדינטות ב-NavigationMap
.ב-iOS, יוצרים
GMSMarker
עבור היעד ומציגים אותו. - האם אפשר להשתמש ב-Navigation SDK כדי לעקוב אחרי סטיות מנתיב מוגדר?
-
כן. ב-Android, יש להשתמש ב-
Navigator.setRouteChangedListener
כדי קבלת התראות כשמסלול משתנה או כשמומלץ מסלול חדש:- רישום אוזן שבודק את מיקום המכשיר לאורך המסלול
באמצעות השיטה
Navigator.setRouteChangedListener
. - הוספת קוד ל-handler של אירועי קריאה חוזרת,
onRouteChanged
:- שולחים הודעה למשתמש באפליקציה עם מידע עדכני על זמן ההגעה המשוער ועל המרחק.
- מעקב אחר מיקום המכשיר.
- [אופציונלי] צריך להוסיף עוד פונקציונליות שנדרשת על ידי האפליקציה כדי לטפל בה כשהנהג חורג מהמסלול שצוין.
ב-iOS, צריך להשתמש ב-
GMSNavigator
ובמאזינים שלו כדי קבלת התראות כשמסלול משתנה או כשמומלץ מסלול חדש:- בבקר תצוגות המפה, מטמיעים את
GMSNavigatorListener
והפרוטוקולGMSRoadSnappedLocationProviderListener
. - יישום
GMSNavigatorListener.navigatorDidChangeRoute
- גישה למסלול החדש באמצעות
routeLegs
וcurrentRouteLeg
שלGMSNavigator
.
- רישום אוזן שבודק את מיקום המכשיר לאורך המסלול
באמצעות השיטה
-
כן. ב-Android, קוראים לשיטה
Navigator.stopGuidance()
כדי הפסקת הניווט.ב-iOS, קוראים לפונקציה
GMSNavigator.clearDestinations
.
סימולטור
- האם הסימולטור תומך בשינויי מסלול?
-
כן. ב-Android, צריך להתקשר למספר
simulateLocationsAlongNewRoute
אל סימולציה של נסיעה שכוללת שינוי מסלול.simulateLocationsAlongExistingRoute
השיטה מתעלמת משינויים בנתיב הקיים.ב-iOS, משתמשים ב-
GMSLocationSimulator.simulateAlongNewRouteToDestinations
כדי לדמות נסיעה שכוללת שינוי מסלול. אם אינכם מצפים לצפות כל שינוי במסלול, אפשר להשתמש ב-GMSLocationSimulator.simulateLocationsAlongExistingRoute
אוGMSLocationSimulator.simulateAlongNewRouteToDestinations
.
תהליכי עבודה
- איך סוגרים את ההתראה אחרי שסוגרים פעילות שמכילה שמקטע הניווט?
-
התראת הניווט תמשיך להופיע במהלך הניווט כשהפעילות נסגרת. כשהרכב מגיע אל היעד, הניווט נפסק וההתראה תיעלם.
כדי לטפל בקליקים על ההתראה, יש להשתמש ב
Navigator.startGuidance(intent resumeIntent)
. ה-resume intent
מופעל כשהמשתמש לוחץ על ההתראה. בדרך כלל, שם המכשיר הואNavigator.startguidance(getIntent())
הפעילות הראשית, שמשחזרת את הפעילות כאשר משתמש האפליקציה לוחץ על ההתראה.