בחירת פלטפורמה: Android iOS

הגדרת שיבושים בזמן אמת

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

תכונות בזמן אמת לניהול שיבושים

ערכת ה-Navigation SDK כוללת את התכונות הבאות לגבי שיבושים בזמן אמת, כחלק מחוויית הניווט המרכזית:

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

הודעות אינטראקטיביות על שיבושים לאורך המסלולים

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

תוספי 'יתרונות מרכזיים' לאורך מסלולים

אפשר לקבוע את הצגת ההתרעות על שיבושים בדרכים באמצעות setTrafficPromptsEnabled. ההגדרה הזו קובעת גם את הצגת ההתראות האוטומטיות כשמשתמש מתקרב לשיבוש.

// Using the SupportNavigationFragment
mNavFragment.setTrafficPromptsEnabled(true);

// Using the NavigationView
navigationView.setTrafficPromptsEnabled(true);

הצגת פרטי השיבושים כשמשתמש מקייש על הודעה

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

כרטיסי מידע בסקירות הכלליות של המסלולים, לפני שמתחילים בניווט פעיל

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

כרטיס מידע של סקירה כללית

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

// Using the SupportNavigationFragment
mNavFragment.setTrafficIncidentCardsEnabled(true);

// Using the NavigationView
navigationView.setTrafficIncidentCardsEnabled(true);

כרטיסי מידע במהלך ניווט פעיל

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

כרטיס מידע פעיל על ניווט

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

// Using the SupportNavigationFragment
mNavFragment.setTrafficPromptsEnabled(true);

// Using the NavigationView
navigationView.setTrafficPromptsEnabled(true);

התראות אוטומטיות על שיבושים עם אפשרות להצבעה במהלך ניווט פעיל

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

כרטיס מידע פעיל על ניווט

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

// Using the SupportNavigationFragment
mNavFragment.setTrafficPromptsEnabled(true);

// Using the NavigationView
navigationView.setTrafficPromptsEnabled(true);

דיווח על שיבושים במהלך ניווט פעיל

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

לחצן הדיווח תפריט הדיווח

אפשר להגדיר את ההצגה של לחצן הדיווח במהלך ניווט פעיל באמצעות setReportIncidentButtonEnabled.

// Enables the incident reporting button to show in situations where incident
// reporting is possible.

// Using the SupportNavigationFragment
mNavFragment.setReportIncidentButtonEnabled(true);

// Using the NavigationView
navigationView.setReportIncidentButtonEnabled(true);

עבודה עם ממשקי משתמש מותאמים אישית של ניווט

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

מיקום הלחצן לדיווח

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

Prompt Visibility API (ניסיוני)

באמצעות Prompt Visibility API תוכלו להימנע מהתנגשויות בין רכיבי ממשק המשתמש שנוצרו על ידי Navigation SDK לבין רכיבי ממשק המשתמש המותאמים אישית שלכם. לשם כך, צריך להוסיף מאזין שיקבל קריאה חוזרת לפני שרכיב ממשק המשתמש של Navigation SDK עומד להופיע, וכשהרכיב יוסר. אתם יכולים לקבל שיחות חזרה לגבי רכיבים של שיבושים בזמן אמת, כולל כרטיסי מידע, הנחיות ותפריט הדיווח על שיבושים, וגם לגבי התראות אחרות שנוצרות על ידי Navigation SDK.
// Sample listener
val listener: PromptVisibilityChangedListener = { isVisible ->
	if (isVisible) {
		customFab.visibility = false
		customFooter.visibility = false
		moveSomeOtherThingsAround()
	} else {
		customFab.visibility = true
		customFooter.visibility = true
		moveSomeThingsBackToWhereTheyWereBefore()
	}
}

// Inside onCreate()
navigationView.addPromptVisibilityChangedListener(listener)

// Inside onDestroy()
navigationView.removePromptVisibilityChangedListener(listener)