שאלות נפוצות
פרטי המוצר
- איך צריך להציג את ההודעה על התנאים וההגבלות של Navigation SDK?
- אילו שפות נתמכות בהנחיות הקוליות?
- האם הכיוון נשמר כשהנהג יוצא ממצב ניווט?
- האם קווים פוליגוניים זמינים כשמתחילים מסלול או משנים אותו?
- האם המשתמשים באפליקציה צריכים להתקין את מפות Google לנייד?
- האם Navigation SDK יכול לזהות חנייה ליד מסעדות ויעדים אחרים?
- האם Navigation SDK מציג את כיוון התנועה בנתיבים כשמתקרבים לנקודת פנייה?
בעיות
- ב-Xcode 12, האפליקציות לא נוצרות בצורה נכונה עבור הסימולטור. איך אפשר לפתור את הבעיה?
GMSMapViewלא נטען.
רשת
נתונים
- האם אפשר לאחזר את כל התחנות או היעדים במסלול לפני שמתחילים את הנסיעה?
- האם ההנחיות המפורטות זמינות בתחילת המסלול?
- איך זמן ההגעה המשוער (ETA) מוצג למשתמשי האפליקציה?
- האם אפשר להשתמש ב-
RoadSnappedLocationProviderכדי לקבל את המיקום הנוכחי של הנהג שמוצמד לכביש אם הניווט לא פועל בחזית? - האם Navigation SDK תומך בגדרות וירטואליות?
- אפשר להשבית את ההתראות כשאפליקציית הניווט פועלת ברקע?
התאמה אישית של ממשק המשתמש
- אפשר להשתמש בקידוד צבעים כדי להבחין בין האפשרויות של המסלול הטוב ביותר?
- האם אפשר להציג ב-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 לנייד במכשיר כדי להשתמש ב-Navigation SDK.
- לא, בשלב הזה אין תמיכה בפונקציונליות הזו ב-Navigation SDK.
- כן. כיוון התנועה זמין ומוצג כברירת מחדל.
בעיות
- ב-Xcode 12, האפליקציות לא נוצרות בצורה תקינה עבור הסימולטור. איך פותרים את הבעיה?
-
כדי לפתור את הבעיה, פותחים את הגדרות ה-Build של פרויקט Xcode ומוסיפים את
arm64אלExcluded Architecturesב-Builds של iOS Simulator בלבד.מידע נוסף זמין בשרשור הזה ב-StackOverflow.
- GMSMapView לא נטען.
-
אם הרכיב GMSMapView לא נטען:
- בודקים ש-NavSDK מופעל ב-Cloud Console.
- אם Nav SDK מותקן, אבל הפרויקט לא משתמש בממשקי Nav SDK API, צריך להסיר אותו מהקובץ הבינארי.
רשת
- איך 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. - עיבוד של משך ההגעה המשוער ליעד הסופי.
- מאחזרים את הזמן והמרחק של כל נקודות הביניים באמצעות
- איך אפשר להסתיר את העדכונים לגבי שעת ההגעה המשוערת?
-
אפשר להשבית את כרטיסי ההגעה המשוערת בדרכים הבאות:
- ב-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כדי לקבל התראות כשמסלול משתנה או כשמומלץ מסלול חדש:- רושמים listener שבודק את מיקום המכשיר לאורך המסלול באמצעות השיטה
Navigator.setRouteChangedListener. - מוסיפים קוד ל-callback event handler,
onRouteChanged:- שליחת הודעה למשתמש באפליקציה עם מידע עדכני על זמן ההגעה המשוער והמרחק.
- עוקבים אחרי מיקום המכשיר.
- [אופציונלי] מוסיפים פונקציונליות אחרת שנדרשת באפליקציה כדי לטפל במקרים שבהם הנהג סוטה מהמסלול שנקבע.
ב-iOS, אפשר להשתמש ב-
GMSNavigatorובמאזינים שלו כדי לקבל התראות כשמסלול משתנה או כשמומלץ מסלול חדש:- בבקר התצוגה של המפה, מטמיעים את הפרוטוקול
GMSNavigatorListenerואת הפרוטוקולGMSRoadSnappedLocationProviderListener. - מטמיעים את
GMSNavigatorListener.navigatorDidChangeRoute. - אפשר לגשת למסלול החדש באמצעות המאפיינים
routeLegsו-currentRouteLegשלGMSNavigator.
- רושמים listener שבודק את מיקום המכשיר לאורך המסלול באמצעות השיטה
-
כן. ב-Android, מבצעים קריאה ל-method
Navigator.stopGuidance()כדי להפסיק את הניווט.ב-iOS, מתקשרים אל
GMSNavigator.clearDestinations. - האם Navigation SDK תומך בניווט ובהגדרת מסלולים למשאיות ולרכבים גדולים?
-
כן. בעזרת LVR (ניווט למשאיות), אתם יכולים להעביר טוקנים של מסלולים ספציפיים למשאיות שנוצרו על ידי Routes API או Route Optimization API אל Navigation SDK. ה-SDK מספק ניווט מנקודה לנקודה עם הערות לגבי המסלול (גובה, משקל, חומרים מסוכנים והגבלות על משאיות) ושומר על הפרופיל הפיזי של הרכב במהלך ניתוב מחדש דינמי. פרטים נוספים זמינים במאמר ניווט במסלולים לרכבים גדולים.
סימולטור
- האם הסימולטור תומך בשינויים במסלול?
-
כן. ב-Android, מתקשרים אל
simulateLocationsAlongNewRouteכדי לדמות נסיעה שכוללת שינוי מסלול. השיטהsimulateLocationsAlongExistingRouteמתעלמת משינויים במסלול הקיים.ב-iOS, משתמשים ב-
GMSLocationSimulator.simulateAlongNewRouteToDestinationsכדי לדמות מסלול שכולל שינוי נתיב. אם לא צפויים שינויים במסלול, אפשר להשתמש בGMSLocationSimulator.simulateLocationsAlongExistingRouteאו בGMSLocationSimulator.simulateAlongNewRouteToDestinations.
תהליכי עבודה
- איך אפשר לסגור את ההתראה אחרי שסוגרים פעילות שמכילה קטע ניווט?
-
ההתראה על הניווט נשארת גלויה במהלך הניווט, גם כשהפעילות סגורה. כשהרכב מגיע ליעד, הניווט נפסק וההתראה נעלמת.
כדי לטפל בלחיצות על ההתראה, משתמשים ב-
Navigator.startGuidance(intent resumeIntent). תגresume intentמופעל כשמשתמש האפליקציה לוחץ על ההתראה. בדרך כלל, הפונקציהNavigator.startguidance(getIntent())נקראת מתוך Activity ראשי, שקורא ל-Activity כשהמשתמש באפליקציה לוחץ על ההתראה.
שירותי ניידות
שירותי הניידות של Google Maps Platform כוללים אוסף של ממשקי API ו-SDK שעוזרים לתמוך בצרכים של עסקים בתחום התחבורה והלוגיסטיקה. לקוחות של שירותי ניידות משתמשים בדרך כלל ב-Navigation SDK בשילוב עם שירותים קשורים לאופטימיזציה של מסלולים, לשיגור, למעקב אחרי משימות, לניתוח של צי הרכב ועוד. לקוחות של שירותי ניידות מחויבים על השימוש ב-Navigation SDK באופן שונה. מידע נוסף זמין במאמרי העזרה בנושא שירותי ניידות.
מוצרי ניידות זמינים רק ללקוחות נבחרים. למידע נוסף, אפשר לפנות לנציג המכירות.
ReportBillableEvent בקוד שלכם. רק לקוחות של Mobility Services צריכים להתקשר לשיטה ReportBillableEvent.
יש כמה ממשקי API ב-Navigation SDK שמיועדים לשימוש רק על ידי לקוחות של Mobility Services, שמקבלים חשבון מ-Google על בסיס כל עסקה. אם אתם לא לקוחות של שירותי ניידות, השיטות הבאות הן בלי תפעול (no-ops):
כן, לקוחות של Mobility Services יכולים להשתמש גם ב-Mobility Services וגם בהטמעות של Navigation SDK שאינן Mobility Services. עם זאת, אפשר להשתמש רק בסוג הטמעה אחד באפליקציה בכל פעם. בנוסף, צריך ליצור פרויקט בענן חדש ב-Google Cloud, חשבון לחיוב ומפתח API, בנפרד מאלה שבהם אתם משתמשים בהטמעה של שירותי הניידות. מידע נוסף זמין במאמר סקירה כללית של הגדרת Navigation SDK.
לקבלת מידע נוסף על שימוש בהטמעה של Navigation SDK שאינה Mobility Services, כולל העברת אפליקציה מסוג הטמעה אחד לסוג אחר, אפשר לפנות לאיש הקשר האחראי לחשבון Google.
הערה: אם אתם לא לקוחות של שירותי Mobility ורוצים לקבל מידע נוסף על אוסף ממשקי ה-API וערכות ה-SDK של שירותי Mobility, אתם יכולים לפנות למחלקת המכירות של הפלטפורמה של מפות Google.