שאלות נפוצות
פרטי המוצר
- איך צריך להציג את ההודעה על התנאים וההגבלות של 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רק בשביל ה-Build של 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). - האם הנחיות מפורטות זמינות בתחילת המסלול?
- כן. 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).
התאמה אישית של ממשק המשתמש
- Can I color code the best route option?
- לא. בשלב הזה אין תמיכה בקידוד צבעים של אפשרות מסלול ספציפית.
- האם אפשר להציג ב-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 וגם ביישומים שלא קשורים ל-Mobility Services. עם זאת, אפשר להשתמש רק בסוג הטמעה אחד באפליקציה בכל פעם. בנוסף, תצטרכו ליצור פרויקט חדש ב-Google Cloud, חשבון לחיוב ומפתח API, שיהיו נפרדים מאלה שבהם אתם משתמשים בהטמעה של שירותי הניידות. מידע נוסף זמין במאמר סקירה כללית של הגדרת Navigation SDK.
כדי לקבל מידע נוסף על שימוש בהטמעה של Navigation SDK שלא מבוססת על Mobility Services, כולל העברת אפליקציה מסוג הטמעה אחד לסוג אחר, אפשר לפנות לאיש הקשר האחראי לחשבון Google.
הערה: אם אתם לא לקוחות של שירותי Mobility ורוצים לקבל מידע נוסף על אוסף ממשקי ה-API וערכות ה-SDK של שירותי Mobility, אתם יכולים לפנות למחלקת המכירות של הפלטפורמה של מפות Google.