שאלות נפוצות
פרטי המוצר
- איך צריך להציג את ההודעה על התנאים וההגבלות של Navigation SDK?
- אילו שפות נתמכות בהנחיות הקוליות?
- האם הכיוון נשמר כשהנהג יוצא ממצב ניווט?
- האם אפשר להשתמש בקווי פוליגון כשמתחילים מסלול או משנים אותו?
- האם המשתמשים באפליקציה צריכים להתקין את מפות Google לנייד?
- האם Navigation SDK יכול לזהות חנייה ליד מסעדות ויעדים אחרים?
- האם Navigation SDK מציג את כיוון התנועה בנתיבים כשמתקרבים לנקודת פנייה?
בעיות
- ב-Xcode 12, האפליקציות לא נוצרות בצורה תקינה עבור הסימולטור. איך אפשר לפתור את הבעיה?
- הדף
GMSMapView
לא נטען.
רשת
נתונים
- האם אפשר לאחזר את כל התחנות או היעדים במסלול לפני שמתחילים את הנסיעה?
- האם הנחיות מפורטות זמינות בתחילת המסלול?
- איך זמן ההגעה המשוער (ETA) מוצג למשתמשי האפליקציה?
- האם אפשר להשתמש ב-
RoadSnappedLocationProvider
כדי לקבל את המיקום הנוכחי של הנהג שמוצמד לכביש אם הניווט לא פועל בחזית? - האם Navigation SDK תומך בגידור גיאוגרפי?
- האם אפשר להשבית את ההתראות כשאפליקציית הניווט פועלת ברקע?
התאמה אישית של ממשק המשתמש
- אפשר להשתמש בקידוד צבעים כדי להבליט את האפשרות של המסלול הטוב ביותר?
- האם אפשר להציג ב-Navigation SDK את זמן ההגעה המשוער ליעד הסופי?
- איך אפשר להסתיר את העדכונים לגבי זמן ההגעה המשוער?
- אילו אפשרויות התאמה אישית של ממשק המשתמש זמינות בכרטיסי הכותרת העליונה והתחתונה?
ניתוב
- האם אפשר לספק לנהג מסלול ספציפי או להסיר מסלולים חלופיים?
- האם אפשר להציג לנהג תווית אחרת ליעד במקום מיקום היעד שמוגדר כברירת מחדל?
- האם אפשר להשתמש ב-Navigation SDK כדי לעקוב אחרי סטיות מנתיב מוגדר?
- האם הנהג יכול לצאת מהניווט בלי להשלים את המסלול?
סימולטור
תהליכי עבודה
שירותי ניידות
- מה ההבדל בשימוש ב-Navigation SDK ללקוחות של Mobility Services?
- איך אפשר לדעת אם אני לקוח של Mobility Services?
- איך מתבצע החיוב על Navigation SDK ללקוחות של שירותי ניידות?
- באילו ממשקי API של Navigation SDK יכולים להשתמש רק לקוחות של שירותי ניידות?
- אם אני לקוח של Mobility Services, האם אוכל להשתמש גם בהטמעה של Navigation SDK שאינה קשורה ל-Mobility Services?
פרטי המוצר
- באפליקציה שלך צריך להטמיע תיבת דו-שיח עם הודעה על התנאים וההגבלות של Navigation SDK, שכל נהג צריך לאשר. בתיבת הדו-שיח הזו יש לנהג אפשרות להסכים לתנאים ולהגבלות. קובץ טקסט של התנאים מסופק עם Navigation SDK.
- ב-Android, משתמשים בשיטה
NavigationApi.showTermsAndConditionsDialog
כדי להציג את תיבת הדו-שיח עם התנאים. - ב-iOS, מתקשרים
GMSNavigationServices.showTermsAndConditionsDialogIfNeededWithCompanyName
. - כל השפות שנתמכות ב-Google Maps Mobile זמינות באופן אוטומטי ב-Navigation SDK. למכשיר יש שפת מערכת שמוגדרת כברירת מחדל, ואפליקציה לא יכולה לשנות את ההגדרה הזו. עם זאת, לאפליקציה יש גישה ליותר מ-70 שפות.
-
כן. ב-Android, אחרי שהתחלתם את
LocationListener
, הוא ממשיך לפעול ברקע. האפליקציה ממשיכה להצמיד את המיקום לכביש ושומרת על הכיוון.ב-iOS, כדי להמשיך לקבל עדכונים לגבי המיקום והכיוון ברקע, צריך להטמיע את התכונה 'הצמדה לכביש' ולהגדיר את
allowsBackgroundLocationUpdates
לערךYES
. -
כן. כשיוצרים או משנים מסלול,
RouteChangeListener
מספק קווים פוליגוניים. - לא, לא צריך להתקין את Google Maps Mobile במכשיר כדי להשתמש ב-Navigation SDK.
- לא, בשלב הזה אין תמיכה בפונקציונליות הזו ב-Navigation SDK.
- כן. כיוון התנועה זמין ומוצג כברירת מחדל.
בעיות
- ב-Xcode 12, האפליקציות לא נוצרות בצורה תקינה עבור הסימולטור. איך פותרים את הבעיה?
-
כדי לפתור את הבעיה, פותחים את הגדרות ה-Build של פרויקט Xcode ומוסיפים את
arm64
אלExcluded Architectures
ב-Builds של iOS Simulator בלבד.מידע נוסף זמין בשרשור הזה ב-StackOverflow.
- GMSMapView לא נטען.
-
אם GMSMapView לא נטען:
- בודקים ש-NavSDK מופעל במסוף Cloud.
- אם Nav SDK מותקן, אבל הפרויקט לא משתמש בממשקי Nav SDK API, צריך להסיר אותו מהקובץ הבינארי.
רשת
- איך Navigation SDK מטפל בקישוריות חלשה?
- Navigation SDK שומר במטמון מראש את המסלול לכל נסיעה. המידע שמאוחסן במטמון מראש כולל מידע על ניתוב למשך 15-20 דקות, וחלופות למסלול למקרה שהנהג יסטה מהמסלול. ה-SDK של Navigation מעריך את המיקום באמצעות ה-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
. - האם Navigation SDK תומך בגידור גיאוגרפי?
-
לא. בהקשר של ניווט, ל-
remainingTimeOrdistanceChangeListener
יש יתרון על פני גדר וירטואלית. יכול להיות שהגדרת הגדר הווירטואלית לא תתחשב בגיאומטריה של הכביש, ושהיא לא תהיה ממוקמת בדיוק במרכז הנקודה שאליה הנהג מנווט.אפשר להשתמש ב-
remainingTimeOrdistanceChangeListener
כדי לקבל קירוב של הפונקציונליות הזו.- מגדירים את הסף כדי לקבוע את התדירות של הקריאות החוזרות.
- בודקים את המרחק שנותר עד ליעד.
לדוגמה, אם מגדירים את הסף ל-100 מ', מקבלים קריאה חוזרת כשהמרחק ליעד משתנה ב-100 מ'. ככל שהמרחק קטן יותר, אפשר לעדכן את ערך הסף הזה לערך קטן יותר ולקבל קריאות חוזרות בתדירות גבוהה יותר. לאחר מכן, בודקים את המרחק שנותר כדי להבין אם אתם קרובים מספיק למיקום האיסוף או ההורדה.
ב-iOS, מטמיעים את ה-listener
GMSNavigatorListener.didUpdateRemainingDistance
כדי לנהל את המרחק בין ההתראות. - אפשר להשבית את ההתראות כשאפליקציית הניווט פועלת ברקע?
-
כן. ב-Android, משתמשים ב
Navigator.setHeadsUpNotificationEnabled
כדי לשלוט בהתראות. לשיטה הזו יש ארגומנט בוליאני.FALSE
השבתת ההתראות;TRUE
הפעלת ההתראות.ב-iOS, כדי להשבית את ההתראות ברקע לגבי מיקומים שמוצמדים לכביש, צריך להגדיר את
GMSRoadSnappedLocationProvider.allowsBackgroundLocationUpdates
לערך NO.כדי להשבית את העיבוד ברקע של התראות אחרות לגבי מיקום, צריך להתקשר אל
GMSNavigator.sendsBackgroundNotifications(NO)
.
התאמה אישית של ממשק המשתמש
- אפשר להוסיף קוד צבע לאפשרות המסלול הטובה ביותר?
- לא. בשלב הזה אין תמיכה בקידוד צבעים של אפשרות מסלול ספציפית.
- האם אפשר להציג ב-Navigation 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
עם שם מותאם אישית ליעד ועם קו הרוחב וקו האורך. Navigation SDK מציג את הכותרת המותאמת אישית ואת הקואורדינטות ב-NavigationMap
.ב-iOS, יוצרים ומציגים
GMSMarker
ליעד. - האם אפשר להשתמש ב-Navigation SDK כדי לעקוב אחרי סטיות מנתיב מוגדר?
-
כן. ב-Android, אפשר להשתמש ב-
Navigator.setRouteChangedListener
כדי לקבל התראות כשמסלול משתנה או כשמומלץ מסלול חדש:- רושמים מאזין שבודק את מיקום המכשיר לאורך המסלול באמצעות השיטה
Navigator.setRouteChangedListener
. - מוסיפים קוד ל-callback event handler,
onRouteChanged
:- שליחת הודעה למשתמש באפליקציה עם מידע מעודכן על זמן ההגעה המשוער והמרחק.
- מעקב אחרי המיקום של המכשיר.
- [אופציונלי] מוסיפים פונקציונליות אחרת שנדרשת באפליקציה כדי לטפל במקרים שבהם הנהג סוטה מהמסלול שנקבע.
ב-iOS, אפשר להשתמש ב-
GMSNavigator
ובמאזינים שלו כדי לקבל התראות כשמסלול משתנה או כשמומלץ מסלול חדש:- בבקר התצוגה של המפה, מטמיעים את הפרוטוקול
GMSNavigatorListener
ואת הפרוטוקולGMSRoadSnappedLocationProviderListener
. - הטמעה של
GMSNavigatorListener.navigatorDidChangeRoute
. - אפשר לגשת למסלול החדש באמצעות המאפיינים
routeLegs
ו-currentRouteLeg
שלGMSNavigator
.
- רושמים מאזין שבודק את מיקום המכשיר לאורך המסלול באמצעות השיטה
-
כן. ב-Android, מבצעים קריאה ל-method
Navigator.stopGuidance()
כדי להפסיק את הניווט.ב-iOS, מתקשרים למספר
GMSNavigator.clearDestinations
.
סימולטור
- האם הסימולטור תומך בשינויים במסלול?
-
כן. ב-Android, מתקשרים אל
simulateLocationsAlongNewRoute
כדי לדמות נסיעה שכוללת שינוי מסלול. השיטהsimulateLocationsAlongExistingRoute
מתעלמת משינויים במסלול הקיים.ב-iOS, משתמשים ב-
GMSLocationSimulator.simulateAlongNewRouteToDestinations
כדי לדמות נסיעה שכוללת שינוי מסלול. אם לא צפויים שינויים במסלול, אפשר להשתמש ב-GMSLocationSimulator.simulateLocationsAlongExistingRoute
או ב-GMSLocationSimulator.simulateAlongNewRouteToDestinations
.
תהליכי עבודה
- איך אפשר לסגור את ההתראה אחרי סגירת פעילות שמכילה קטע ניווט?
-
ההתראה על הניווט נשארת גלויה במהלך הניווט, כשהפעילות סגורה. כשהרכב מגיע ליעד, הניווט נפסק וההתראה נעלמת.
כדי לטפל בלחיצות על ההתראה, משתמשים ב-
Navigator.startGuidance(intent resumeIntent)
. תגresume intent
מופעל כשמשתמש האפליקציה לוחץ על ההתראה. בדרך כלל, הפונקציהNavigator.startguidance(getIntent())
נקראת מתוך הפעילות הראשית, שקוראת לפעילות כשהמשתמש באפליקציה לוחץ על ההתראה.
שירותי ניידות
שירותי הניידות של הפלטפורמה של מפות Google כוללים אוסף של ממשקי API וערכות SDK שעוזרים לתמוך בצרכים של עסקים בתחום התחבורה והלוגיסטיקה. לקוחות של שירותי ניידות משתמשים בדרך כלל ב-Navigation SDK בשילוב עם שירותים קשורים לאופטימיזציה של מסלולים, לשיגור, למעקב אחרי משימות, לניתוח של צי רכב ועוד. לקוחות של שירותי ניידות מחויבים באופן שונה על השימוש ב-Navigation SDK. מידע נוסף זמין במאמר בנושא שירותי ניידות.
מוצרי הניידות זמינים רק ללקוחות נבחרים. כדי לקבל מידע נוסף, פנו לנציג המכירות שלכם.
ReportBillableEvent
בקוד שלכם. רק לקוחות של Mobility Services צריכים להתקשר לשיטה ReportBillableEvent
.
יש כמה ממשקי API ב-Navigation SDK שמיועדים לשימוש רק על ידי לקוחות של שירותי תחבורה, שמתבצע חיוב שלהם על ידי Google על בסיס כל עסקה. אם אתם לא לקוחות של Mobility Services, השיטות הבאות לא יפעלו:
כן, לקוחות של Mobility Services יכולים להשתמש בהטמעות של Navigation SDK גם ב-Mobility Services וגם בפתרונות אחרים. עם זאת, אפשר להשתמש רק בסוג הטמעה אחד באפליקציה בכל פעם. בנוסף, תצטרכו ליצור פרויקט חדש ב-Google Cloud, חשבון לחיוב ומפתח API, שיהיו נפרדים מאלה שבהם אתם משתמשים בהטמעה של שירותי הניידות. מידע נוסף זמין במאמר סקירה כללית על הגדרת Navigation SDK.
כדי לקבל מידע נוסף על שימוש בהטמעה של Navigation SDK שאינה Mobility Services, כולל העברת אפליקציה מסוג הטמעה אחד לסוג אחר, אפשר לפנות לאיש הקשר האחראי לחשבון Google.
הערה: אם אתם לא לקוחות של שירותי תחבורה ורוצים לקבל מידע נוסף על אוסף ממשקי ה-API וערכות ה-SDK של שירותי התחבורה, אתם יכולים לפנות למחלקת המכירות של הפלטפורמה של מפות Google.