שאלות נפוצות

פרטי המוצר

בעיות

רשת

נתונים

התאמה אישית של ממשק המשתמש

ניתוב

סימולטור

תהליכי עבודה

שירותי ניידות

פרטי המוצר

האפליקציה שלכם חייבת ליישם תיבת דו-שיח עם הודעה על התנאים וההגבלות של 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.
  • אם ה-Nav SDK מותקן אבל הפרויקט לא משתמש בממשקי ה-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, פועלים לפי השלבים הבאים כדי לספק למשתמשים באפליקציה מידע על זמן ההגעה המשוער:

  1. אפשר לאחזר את הזמן והמרחק של כל נקודות העצירה באמצעות הפונקציה Navigator.getTimeAndDistanceList().
  2. מעבירים את המידע הזה לאפליקציית הלקוח, כמו שעושים כרגע עם זמן ההגעה המשוער של הנהג.

ב-iOS, כדי לספק למשתמשים באפליקציה מידע על זמן האספקה המשוער:

  1. אחזור של השלבים בתהליך באמצעות Navigator.getRouteSegments().
  2. קוראים ל-GMSNavigator.timeToNextDestination לכל שלב בנסיעה.
  3. מעבירים את פרטי הזמן לאפליקציית הלקוח, כמו שעושים כרגע לגבי זמן ההגעה המשוער של הנהג.
האם אפשר להשתמש ב-RoadSnappedLocationProvider כדי לקבל את המיקום הנוכחי של הנהג, אם הניווט לא נמצא בחזית?

כן. ב-Android, ה-RoadSnappedLocationProvider פועל ברקע כברירת מחדל.

ב-iOS, כדי שהניווט ימשיך לפעול ברקע, מטמיעים את הבורר של GMSRoadSnappedLocationProviderListener ומגדירים את המאפיין allowsBackgroundLocationUpdates לערך TRUE.

האם Navigation SDK תומך בגיאופינינג?

לא. בהקשר של ניווט, ל-remainingTimeOrdistanceChangeListener יש יתרון על פני גדר וירטואלית פשוטה. יכול להיות שהגיאו-גדר לא תתחשב בגיאומטריה של הכביש, ויכול להיות שהיא לא תהיה ממוקמת במרכז הנקודה המדויקת שאליה הנהג מנווט.

אפשר להתקרב לפונקציונליות הזו באמצעות remainingTimeOrdistanceChangeListener.

  1. מגדירים את הסף כדי לקבוע את תדירות הקריאות החוזרות.
  2. בודקים את המרחק שנותר ליעד.

לדוגמה, אם מגדירים את הסף ל-100 מ', תקבלו קריאה חוזרת כשהמרחק ליעד ישתנה ב-100 מ'. ככל שהמרחק קטן יותר, אפשר לעדכן את הסף הזה לערך קטן יותר ולקבל שיחות חוזרות בתדירות גבוהה יותר. לאחר מכן, בודקים את המרחק שנותר כדי לקבוע אם אתם קרובים מספיק למיקום האיסוף או ההחזרה.

ב-iOS, מטמיעים את המאזין GMSNavigatorListener.didUpdateRemainingDistance כדי לנהל את המרחק בין ההתראות.

אפשר להשבית את ההתראות כשאפליקציית הניווט פועלת ברקע?

כן. ב-Android, משתמשים ב-Navigator.setHeadsUpNotificationEnabled כדי לשלוט בהתראות. ל-method הזה יש ארגומנט בוליאני. FALSE משביתה את ההתראות, ו-TRUE מפעילה אותן.

ב-iOS, כדי להשבית את ההתראות ברקע לגבי מיקומים שצולמו בדרך, מגדירים את הערך של GMSRoadSnappedLocationProvider.allowsBackgroundLocationUpdates ל-NO.

כדי להשבית את העיבוד ברקע של התראות אחרות לגבי מיקום, צריך להפעיל את הפונקציה GMSNavigator.sendsBackgroundNotifications(NO).

התאמה אישית של ממשק המשתמש

האם אפשר לסמן את המסלול הטוב ביותר בקוד צבע?
לא. בשלב הזה אין תמיכה בתיוג של אפשרות נתיב ספציפית בצבע.
האם Navigation SDK יכול להציג את זמן ההגעה המשוער ליעד הסופי?

כן. ב-Android, משתמשים בשיטות הבאות:

  1. אפשר לאחזר את הזמן והמרחק של כל נקודות העצירה באמצעות הפונקציה Navigator.getTimeAndDistanceList().
  2. כדי להסתיר את זמן ההגעה המשוער לנקודת הדרך הנוכחית, לוחצים על NavigationFragment.setEtaCardEnabled(false).
  3. עיבוד של זמן ההגעה המשוער ליעד הסופי.

ב-iOS, משתמשים באפשרויות הבאות:

  1. התקשרו אל GMSNavigator.routeLegs(read).
  2. בשלב האחרון, צריך להתקשר למספר GMSNavigator.timeToNextDestination.
  3. כדי להסתיר את זמן ההגעה המשוער של ציון הדרך הנוכחי, משנים את הערך של MSMapView.settings.navigationFooterEnabled=NO ל-FALSE.
  4. עיבוד של זמן ההגעה המשוער ליעד הסופי.
איך אפשר להסתיר עדכונים לגבי זמן ההגעה המשוער?

אפשר להשבית כרטיסי ETA בשיטות הבאות:

  • ב-Android, משתמשים ב-navigationView.setEtaCardEnabled(false).
  • ב-iOS, משתמשים ב-GMSMapView.settings.navigationFooterEnabled=NO.
אילו התאמות אישיות של ממשק המשתמש זמינות לכרטיסי הכותרת העליונה והכותרת התחתונה?

ב-Android, משתמשים ב-StylingOptions כדי להגדיר את סגנון צבע הרקע. כדי להסתיר או להציג את הכותרת העליונה והכותרת התחתונה, משתמשים בפונקציות המשתנה setHeaderEnabled ו-setFooterEnabled של NavigationFragment.

ב-iOS, משתמשים ב-GMSMapView.settings.navigationHeaderPrimaryBackgroundColor כדי להגדיר את סגנון צבע הרקע. כדי להסתיר או להציג את הכותרת העליונה ואת הכותרת התחתונה, משתמשים במאפיינים navigationFooterEnabled ו-navigationHeaderEnabled של GMSUISettings.

ניתוב

האם אפשר לספק לנהג מסלול ספציפי או להסיר מסלולים חלופיים?
לא. כברירת מחדל, המערכת מספקת כמה מסלולים, והנתיב המהיר ביותר מקבל עדיפות. אתם יכולים להשפיע על מסלול ברירת המחדל על ידי הוספת העדפות לבקשה, כמו 'הימנעות מכבישים מהירים ומכבישי אגרה'. הוספת נקודות דרך משפיעה גם על המסלול.
האם אפשר להציג למשתמש באפליקציה תווית שונה ליעד, שונה ממיקום היעד שמוגדר כברירת מחדל?

כן. ב-Android, יוצרים Marker עם שם מותאם אישית ליעד ועם קו הרוחב/קו האורך. Navigation SDK מציג את השם המותאם אישית ואת הקואורדינטות ב-NavigationMap.

ב-iOS, יוצרים GMSMarker ומציגים אותו ליעד.

האם אפשר להשתמש ב-Navigation SDK כדי לעקוב אחרי סטיות מנתיב מוגדר?

כן. ב-Android, אפשר להשתמש ב-Navigator.setRouteChangedListener כדי לקבל התראות כשהמסלול משתנה או כשמומלץ מסלול חדש:

  1. רושמים מאזין שבודק את מיקום המכשיר לאורך המסלול באמצעות השיטה Navigator.setRouteChangedListener.
  2. מוסיפים קוד לטיפול באירוע הקריאה החוזרת, onRouteChanged:
    • שליחת הודעה למשתמש באפליקציה עם זמן הגעה משוער מעודכן ומידע על המרחק.
    • לעקוב אחרי המיקום של המכשיר.
    • [אופציונלי] מוסיפים פונקציונליות אחרת שנדרשת לאפליקציה כדי לטפל במקרים שבהם הנהג יוצא מהמסלול שנקבע.

ב-iOS, משתמשים ב-GMSNavigator ובמאזינים שלו כדי לקבל התראות כשמסלול משתנה או כשמסלול חדש מומלץ:

  1. ב-view controller של המפה, מטמיעים את הפרוטוקול GMSNavigatorListener ואת הפרוטוקול GMSRoadSnappedLocationProviderListener.
  2. מטמיעים את GMSNavigatorListener.navigatorDidChangeRoute.
  3. ניגשים למסלול החדש באמצעות המאפיינים 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()) נקרא מהפעילות הראשית, שמפעילה מחדש את הפעילות כשמשתמש האפליקציה לוחץ על ההתראה.

שירותי ניידות

מה ההבדל בין השימוש ב-Navigation SDK ללקוחות של Mobility Services?

שירותי התחבורה של פלטפורמת מפות Google כוללים אוסף של ממשקי API וערכות SDK שיעזרו לכם לענות על הצרכים של הארגון בתחום התחבורה והלוגיסטיקה. לקוחות Mobility Services משתמשים ב-Navigation SDK בדרך כלל בשילוב עם שירותים קשורים לאופטימיזציית מסלולים, לשליחת משימות, למעקב אחרי משימות, לניתוח נתונים של צי רכב ועוד. בנוסף, החיוב על Navigation SDK שונה עבור לקוחות Mobility Services. מידע נוסף זמין במסמכי העזרה של Mobility Services.

בשלב זה, מוצרי הניידות זמינים רק ללקוחות נבחרים. למידע נוסף, אפשר לפנות לנציג המכירות שלכם.

איך אפשר לדעת אם אתם לקוחות של Mobility Services?
אם אתם לא בטוחים אם אתם מיישמים כרגע את Navigation SDK בתור לקוחות של Mobility Services, חפשו קריאה ל-ReportBillableEvent בקוד. רק לקוחות Mobility Services צריכים להפעיל את השיטה ReportBillableEvent.

איך מתבצע החיוב על Navigation SDK ללקוחות Mobility Services?
ללקוחות של Mobility Services, החיוב והתמחור של Navigation SDK תלויים בהסכם השירות שלכם עם הפלטפורמה של מפות Google. במאמר אימות החיוב מוסבר איך לוודא שהחיוב על ההטמעה של Mobility Services תקין. למידע נוסף על החיוב ב-Mobility Services, אפשר לפנות לנציג המכירות.

באילו ממשקי API של Navigation SDK צריך להשתמש רק לקוחות של Mobility Services?

יש כמה ממשקי API ב-Navigation SDK שמיועדים לשימוש רק של לקוחות Mobility Services, ש-Google מחייבת אותם על כל עסקה. אם אתם לא לקוחות של Mobility Services, השיטות הבאות הן no-ops:

אם אני לקוח של Mobility Services, האם אוכל להשתמש גם בהטמעה של Navigation SDK שלא קשורה ל-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.