שאלות נפוצות

פרטי המוצר

בעיות

רשת

נתונים

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

ניתוב

סימולטור

תהליכי עבודה

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

פרטי המוצר

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

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

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

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

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

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

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

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

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

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

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

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

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

כן. ב-Android, משתמשים ב-Navigator.setHeadsUpNotificationEnabled כדי לשלוט בהתראות. לשיטה הזו יש ארגומנט בוליאני. 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, השיטות הבאות הן ללא פעולות:

אם אני לקוח של 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.