שאלות נפוצות

פרטי המוצר

בעיות

רשת

נתונים

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

ניתוב

סימולטור

תהליכי עבודה

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

פרטי המוצר

באפליקציה צריך להטמיע תיבת דו-שיח עם הודעה על התנאים וההגבלות של Navigation SDK, שכל נהג חייב לאשר. בתיבת הדו-שיח הזו הנהג יכול לאשר את התנאים וההגבלות. קובץ טקסט של התנאים מצורף ל-Navigation SDK.
ב-Android, משתמשים ב-method‏ NavigationApi.showTermsAndConditionsDialog כדי להציג את תיבת הדו-שיח שמכילה את התנאים.
ב-iOS, מפעילים את GMSNavigationServices.showTermsAndConditionsDialogIfNeededWithCompanyName.
כל השפות שנתמכות באפליקציית מפות Google לנייד זמינות באופן אוטומטי ב-Navigation SDK. למכשיר יש שפת מערכת שמוגדרת כברירת מחדל, והאפליקציה לא יכולה לשנות את ההגדרה הזו. עם זאת, לאפליקציה יש גישה ליותר מ-70 שפות.

כן. ב-Android, אחרי שמפעילים את LocationListener, היא ממשיכה לפעול ברקע. האפליקציה ממשיכה להצמיד את המיקום לכביש ולשמור על הכיוון.

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

כן. כשיוצרים או משנים מסלול, RouteChangeListener מספק קווים פוליגוניים.

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

בעיות

ב-Xcode 12, האפליקציות לא נבנות בצורה תקינה בסימולטור. איך פותרים את הבעיה?

כדי לפתור את הבעיה, פותחים את Build Settings (הגדרות ה-build) של פרויקט Xcode ומוסיפים את arm64 ל-Excluded Architectures רק ל-builds של iOS Simulator.

למידע נוסף, קראו את השרשור הזה ב-StackOverflow.

‫GMSMapView לא נטען.

אם ה-GMSMapView לא נטען:

  • בודקים ש-NavSDK מופעל ב-Cloud Console.
  • אם Nav SDK מותקן, אבל הפרויקט לא משתמש בממשקי ה-API של Nav SDK, צריך להסיר אותו מהקובץ הבינארי.

רשת

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

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

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

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

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

ניתוב

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

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

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

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

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

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

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

  1. בבקר התצוגה של המפה, מטמיעים את הפרוטוקול GMSNavigatorListener ואת הפרוטוקול GMSRoadSnappedLocationProviderListener.
  2. מטמיעים את GMSNavigatorListener.navigatorDidChangeRoute.
  3. אפשר לגשת למסלול החדש באמצעות המאפיינים routeLegs ו-currentRouteLeg של GMSNavigator.
האם הנהג יכול לצאת מהניווט בלי להשלים את המסלול?

כן. ב-Android, מפעילים את ה-method‏ Navigator.stopGuidance() כדי להפסיק את הניווט.

ב-iOS, מפעילים את GMSNavigator.clearDestinations.

האם Navigation SDK תומך במסלולים ובניווט למשאיות ולרכבים גדולים?

כן. בעזרת ניתוב רכבים גדולים (LVR), אתם יכולים להעביר ל-Navigation SDK אסימוני מסלול ספציפיים למשאיות שנוצרו על ידי Routes API או Route Optimization API. ה-SDK מספק ניווט מפורט עם הסברים על המסלול (גובה, משקל, חומרים מסוכנים והגבלות על משאיות) ושומר על הפרופיל הפיזי של הרכב במהלך שינוי מסלול דינמי. פרטים נוספים זמינים במאמר ניווט במסלולים לרכבים גדולים.

סימולטור

האם הסימולטור תומך בשינויי מסלול?

כן. ב-Android, מפעילים את simulateLocationsAlongNewRoute כדי לדמות נסיעה שכוללת שינוי מסלול. השיטה simulateLocationsAlongExistingRoute מתעלמת משינויים במסלול הקיים.

ב-iOS, משתמשים ב-GMSLocationSimulator.simulateAlongNewRouteToDestinations כדי לדמות נסיעה שכוללת שינוי במסלול. אם אתם לא צופים שינויים במסלול, אתם יכולים להשתמש ב-GMSLocationSimulator.simulateLocationsAlongExistingRoute או ב-GMSLocationSimulator.simulateAlongNewRouteToDestinations.

תהליכי עבודה

איך אפשר לסגור את ההתראה אחרי שסוגרים פעילות שמכילה קטע ניווט?

ההתראה על הניווט נשארת גלויה במהלך הניווט, כשהפעילות סגורה. כשהרכב מגיע ליעד, הניווט נפסק וההתראה נעלמת.

כדי לטפל בקליקים על ההתראה, משתמשים ב-Navigator.startGuidance(intent resumeIntent). האירוע resume intent מופעל כשמשתמש באפליקציה לוחץ על ההתראה. בדרך כלל, ה-Navigator.startguidance(getIntent()) נקרא מהפעילות הראשית, שמאחזרת את הפעילות כשהמשתמש באפליקציה לוחץ על ההתראה.

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

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

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

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

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

איך מתבצע החיוב על Navigation SDK ללקוחות של Mobility Services?
ללקוחות של Mobility Services, החיוב והתמחור של Navigation SDK תלויים בהסכם השירות שיש לכם עם Google Maps Platform. במאמר אימות החיוב מוסבר איך לוודא שהחיוב על הטמעת 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 Maps Platform.