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

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

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

הוספה של לחצן דיווח בהתאמה אישית

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

  Button customReportIncidentButton = findViewById(R.id.custom_reporting_button);
  
  // Check if reporting is available before displaying your button
  customReportIncidentButton.setVisibility(
      navigationView.isReportingAvailable ? View.VISIBLE : View.GONE);
  
  // Trigger the reporting flow if the button is clicked
  customReportIncidentButton.setOnClickListener(v ->
      navigationView.showReportIncidentsPanel());
  

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

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

מיקום כפתור הדיווח

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

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

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