שאלות נפוצות

פרטי המוצר

בעיות

רשת

נתונים

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

ניתוב

סימולטור

תהליכי עבודה

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

פרטי המוצר

באפליקציה שלך צריך להטמיע תיבת דו-שיח עם הודעה על התנאים וההגבלות של 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 ב-Builds של 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).

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

אפשר להשבית את כרטיסי ההגעה המשוערת בדרכים הבאות:

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

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

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

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

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

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

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

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

אם אני לקוח של Mobility Services, האם אוכל להשתמש גם בהטמעה של Navigation SDK שלא קשורה ל-Mobility Services?

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

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

הערה: אם אתם לא לקוחות של שירותי תחבורה ורוצים לקבל מידע נוסף על אוסף ממשקי ה-API וערכות ה-SDK של שירותי התחבורה, אתם יכולים לפנות למחלקת המכירות של הפלטפורמה של מפות Google.