שאלות נפוצות
פרטי המוצר
- איך צריך להציג את ההודעה בנושא התנאים וההגבלות של Navigation SDK?
- אילו שפות נתמכות בהנחיות הקוליות?
- האם כיוון הנסיעה נשמר כשהנהג יוצא ממצב הניווט?
- האם אפשר להשתמש בקוים פוליגונליים כשמתחילים או משנים מסלול?
- האם משתמשי האפליקציה צריכים להתקין את אפליקציית מפות Google לנייד?
- האם ערכת ה-SDK לניווט יכולה לזהות מקומות חניה ליד מסעדות ויעדי נסיעה אחרים?
- האם Navigation SDK מציג את כיוון התנועה בנתיב כשמתקרבים לנקודת פנייה?
בעיות
- ב-Xcode 12, האפליקציות לא נוצרות בצורה תקינה עבור הסימולטור. איך פותרים את הבעיה?
GMSMapView
לא נטען.
רשת
נתונים
- האם אפשר לאחזר את כל העצירות או היעדים במסלול לפני שמתחילים את המסלול?
- האם הנחיות מפורטות למסלול זמינות בתחילת המסלול?
- איך זמן ההגעה המשוער (ETA) מועבר למשתמשי האפליקציה?
- האם אפשר להשתמש ב-
RoadSnappedLocationProvider
כדי לקבל את המיקום הנוכחי של הנהג, אם הניווט לא בחזית? - האם Navigation SDK תומך בגיאופינינג?
- האם אפשר להשבית את ההתראות כשאפליקציית הניווט פועלת ברקע?
התאמה אישית של ממשק המשתמש
- האם אפשר לסמן את מסלול הנסיעה הטוב ביותר בקוד צבע?
- האם אפשר להציג ב-Navigation SDK את זמן ההגעה המשוער ליעד הסופי?
- איך אפשר להסתיר את העדכונים לגבי זמן ההגעה המשוער?
- אילו התאמות אישיות של ממשק המשתמש זמינות לכרטיסי הכותרת העליונה והכותרת התחתונה?
ניתוב
- האם אפשר לספק למנהל נסיעה מסלול ספציפי או להסיר מסלולים חלופיים?
- האם אפשר להציג לנהג תווית אחרת של היעד, ששונה ממיקום היעד שמוגדר כברירת מחדל?
- האם אפשר להשתמש ב-Navigation SDK כדי לעקוב אחרי סטיות מנתיב מוגדר?
- האם הנהג יכול לצאת מהניווט בלי להשלים את המסלול?
סימולטור
תהליכי עבודה
שירותי ניידות
- מה ההבדל בין השימוש ב-Navigation SDK ללקוחות של Mobility Services?
- איך אפשר לדעת אם אתם לקוחות של Mobility Services?
- איך מתבצע החיוב על Navigation SDK ללקוחות של Mobility Services?
- באילו ממשקי API של Navigation SDK צריך להשתמש רק לקוחות של Mobility Services?
- אם אני לקוח של Mobility Services, האם אוכל להשתמש גם בהטמעה של Navigation SDK שלא קשורה ל-Mobility Services?
פרטי המוצר
- האפליקציה שלכם חייבת ליישם תיבת דו-שיח עם הודעה על התנאים וההגבלות של Navigation SDK, שכל נהג צריך לאשר. תיבת הדו-שיח הזו מאפשרת לנהגים לאשר את התנאים וההגבלות. קובץ טקסט של התנאים מצורף ל-Navigation SDK.
- ב-Android, משתמשים בשיטה
NavigationApi.showTermsAndConditionsDialog
כדי להציג את תיבת הדו-שיח שמכילה את התנאים. - ב-iOS, קוראים למספר
GMSNavigationServices.showTermsAndConditionsDialogIfNeededWithCompanyName
. - כל השפות שנתמכות במפות Google לנייד זמינות באופן אוטומטי ל-Navigation SDK. לכל מכשיר יש שפת מערכת שמוגדרת כברירת מחדל, ואפליקציה לא יכולה לשנות את ההגדרה הזו. עם זאת, לאפליקציה יש גישה ליותר מ-70 שפות.
-
כן. ב-Android, אחרי שמפעילים את
LocationListener
הוא ממשיך לפעול ברקע. האפליקציה ממשיכה להתאים את המיקום לכביש ולשמור על כיוון הנסיעה.ב-iOS, כדי להמשיך לקבל עדכוני מיקום של המיקום והכיוון ברקע, צריך להטמיע התאמה לדרך ולהגדיר את
allowsBackgroundLocationUpdates
לערךYES
. -
כן. כשיוצרים או משנים מסלול, השדה
RouteChangeListener
מספק קווים פוליגונים. - לא, כדי להשתמש ב-Navigation SDK לא צריך להתקין את אפליקציית מפות Google לנייד במכשיר.
- לא, בשלב זה ה-Navigation SDK לא מספק את הפונקציונליות הזו.
- כן. כיוון התנועה זמין ומוצג כברירת מחדל.
בעיות
- ב-Xcode 12, האפליקציות לא נוצרות בצורה תקינה בסימולטור. איך פותרים את הבעיה?
-
כדי לפתור את הבעיה, פותחים את הגדרות ה-Build של פרויקט Xcode ומוסיפים את
arm64
ל-Excluded Architectures
רק לגרסאות build של 'סימולטור iOS'.מידע נוסף זמין בשרשור הבא ב-StackOverflow.
- GMSMapView לא נטען.
-
אם התצוגה של GMSMapView לא נטענת:
- בודקים ש-NavSDK מופעל במסוף Cloud.
- אם ערכת ה-SDK של Nav מותקנת אבל הפרויקט לא משתמש בממשקי ה-API של Nav SDK, צריך להסיר אותה מהקובץ הבינארי.
רשת
- איך Navigation SDK מטפל בחיבור חלש?
- ה-Navigation SDK מאחסן מראש במטמון את המסלול לכל נסיעה. המידע שנשמר במטמון מראש כולל פרטי מסלול ל-15-20 דקות, וחלופות למסלול במקרה שהנהג יחרוג מהמסלול. Navigation SDK משער את המיקום באמצעות ה-GPS והחיישנים של המכשיר.
- האם יש מצב אופליין?
- לא, בשלב הזה אין ב-Navigation SDK מצב אופליין. עם זאת, ה-SDK מספק מידע שנשמר במטמון מראש לגבי מסלול נסיעה.
נתונים
- האם אפשר לאחזר את כל העצירות או היעדים במסלול לפני שמתחילים את המסלול?
-
כן. ב-Android, כדי לאחזר את המסלול, צריך להפעיל את הפונקציה
Navigator.getRouteSegments()
.ב-iOS, מתקשרים למספר
GMSNavigator.routeLegs(read)
. - האם הנחיות מפורטות למסלול זמינות בתחילת המסלול?
- כן. Navigation 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. - עיבוד של זמן ההגעה המשוער ליעד הסופי.
- אפשר לאחזר את הזמן והמרחק של כל נקודות הדרך באמצעות הפונקציה
- איך אפשר להסתיר עדכונים לגבי זמן ההגעה המשוער?
-
אפשר להשבית כרטיסי ETA בשיטות הבאות:
- ב-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
. - מוסיפים קוד לגורם המטפל באירוע הקריאה החוזרת,
onRouteChanged
:- שליחת הודעה למשתמש באפליקציה עם זמן הגעה משוער מעודכן ומידע על המרחק.
- לעקוב אחרי המיקום של המכשיר.
- [אופציונלי] מוסיפים פונקציונליות אחרת שנדרשת לאפליקציה כדי לטפל במקרים שבהם הנהג יוצא מהמסלול שנקבע.
ב-iOS, משתמשים ב-
GMSNavigator
ובמאזינים שלו כדי לקבל התראות כשמסלול משתנה או כשמסלול חדש מומלץ:- ב-view controller של המפה, מטמיעים את פרוטוקול
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 שיעזרו לכם לענות על הצרכים של הארגון בתחום התחבורה והלוגיסטיקה. לקוחות Mobility Services משתמשים ב-Navigation SDK בדרך כלל בשילוב עם שירותים קשורים, לצורך אופטימיזציה של מסלולים, שליחת משימות, מעקב אחר משימות, ניתוח נתונים של צי רכב ועוד. בנוסף, החיוב על Navigation SDK שונה ללקוחות Mobility Services. מידע נוסף זמין במסמכי העזרה של Mobility Services.
בשלב זה, מוצרי הניידות זמינים רק ללקוחות נבחרים. לקבלת מידע נוסף, פנו לנציג המכירות שלכם.
ReportBillableEvent
בקוד. רק לקוחות Mobility Services צריכים להפעיל את השיטה ReportBillableEvent
.
יש כמה ממשקי API ב-Navigation SDK שמיועדים לשימוש רק של לקוחות Mobility Services, ש-Google מחייבת אותם על כל עסקה. אם אתם לא לקוחות של Mobility Services, השיטות הבאות הן ללא פעולות:
כן, לקוחות Mobility Services יכולים להשתמש בהטמעות של Navigation SDK גם ב-Mobility Services וגם מחוץ ל-Mobility Services. עם זאת, אפשר להשתמש רק בסוג הטמעה אחד בכל אפליקציה בכל פעם. בנוסף, צריך ליצור פרויקט חדש ב-Google Cloud, חשבון לחיוב ומפתח API חדשים, בנפרד מהחשבונות שבהם אתם משתמשים בהטמעה של Mobility Services. מידע נוסף זמין בסקירה הכללית על הגדרת Navigation SDK.
למידע נוסף על שימוש בהטמעה של Navigation SDK שלא כוללת את Mobility Services, כולל העברת אפליקציה מסוג הטמעה אחד לסוג אחר, אפשר לפנות לנציג של חשבון Google שלכם.
הערה: אם אתם לא לקוחות של Mobility Services כרגע ואתם רוצים לקבל מידע נוסף על האוסף של ממשקי ה-API וערכות ה-SDK של Mobility Services, פנו לצוות המכירות של הפלטפורמה של מפות Google.