پیکربندی اختلالات زمان واقعی
اختلالات بلادرنگ مجموعهای از ویژگیهایی هستند که به کاربران در مورد اختلالات در مسیرشان هشدار میدهند و به کاربران اجازه میدهند تا اختلالاتی را که با آن مواجه میشوند گزارش و تأیید کنند. نمونه هایی از اختلالات شامل تصادفات وسایل نقلیه، ازدحام ترافیک، حضور پلیس و دوربین های کنترل سرعت، ساخت و ساز، بسته شدن خطوط و شرایط آب و هوایی خاص است. این صفحه ویژگیهای اختلال بیدرنگ و گزینههای پیکربندی آنها را توضیح میدهد، از جمله ملاحظات مربوط به برنامههایی که از رابطهای کاربری ناوبری سفارشی استفاده میکنند.
ویژگی های اختلال در زمان واقعی
Navigation SDK شامل ویژگیهای اختلال بیدرنگ زیر به عنوان بخشی از تجربه اصلی ناوبری است:- پیامهای اختلال تعاملی در طول مسیرها .
- هشدارهای اختلال خودکار با رای دادن در طول ناوبری فعال .
- گزارش اختلال در حین پیمایش فعال
این ویژگی ها به صورت پیش فرض قابل تنظیم و فعال هستند. بخشهای زیر اطلاعات بیشتری درباره ویژگیها و گزینههای پیکربندی موجود ارائه میدهند.
پیامهای اختلال تعاملی در طول مسیرها
هنگامی که یک برنامه مسیری را در نمای کلی مسیر یا در حین ناوبری فعال نمایش می دهد، هر گونه اختلال فعلی به عنوان پیام در طول مسیر ظاهر می شود. Callout ها شامل نمادی هستند که نوع اختلال را نشان می دهد.

با استفاده از shouldDisplayPrompts
میتوانید نمایش پیامهای اختلال در طول مسیرها را کنترل کنید، که همچنین نمایش هشدارهای خودکار را هنگامی که کاربر به یک اختلال نزدیک میشود، کنترل میکند.
mapView.navigator.shouldDisplayPrompts = true
نمایش جزئیات اختلال زمانی که کاربر روی پیامی ضربه می زند
کاربران میتوانند برای نمایش کارت اطلاعاتی با اطلاعات بیشتر در مورد اختلال، از جمله نوع اختلال، زمان آخرین گزارش، و در برخی موارد، گزینهای برای رأی دادن در مورد وجود یا عدم وجود اختلال، روی یک فراخوان ضربه بزنند. بسته به اینکه کاربر در ناوبری فعال است یا نه، دو نوع کارت اطلاعات ممکن است ظاهر شوند و گزینههای پیکربندی برای هر نوع متفاوت است.
پیش از شروع ناوبری فعال، کارتهای اطلاعات فراخوانی در نمای کلی مسیر
هنگامی که کاربر روی یک فراخوان در نمای کلی مسیر ضربه می زند، قبل از شروع ناوبری فعال، یک کارت اطلاعات با اطلاعات بیشتر در مورد اختلال ظاهر می شود.

میتوانید توانایی کاربران را برای ضربه زدن به پیامهای اختلال در نمای کلی مسیر برای نمایش اطلاعات بیشتر با استفاده از showsIncidentCards
کنترل کنید.
mapView.settings.showsIncidentCards = true
کارتهای اطلاعات تماس در حین پیمایش فعال
هنگامی که یک پیام اختلال در طول مسیر در طول مسیریابی فعال ظاهر میشود، کاربران میتوانند برای نمایش کارت اطلاعاتی با اطلاعات بیشتر در مورد اختلال، از جمله نوع اختلال و زمان آخرین گزارش آن، و همچنین دکمههایی برای رأی دادن در مورد اینکه آیا اختلال همچنان وجود دارد یا خیر، روی آن ضربه بزنید. آرای ارسال شده توسط کاربران توسط Google پردازش میشود و ممکن است برای سایر کاربران Google Maps و کاربران Navigation SDK روی نقشه ظاهر شود، و همچنین برای تعیین ادامه نمایش اختلال استفاده میشود.

با استفاده از shouldDisplayPrompts
میتوانید نمایش و قابلیت ضربه زدن پیامهای اختلال را در طول ناوبری فعال کنترل کنید، که همچنین نمایش پیامها را در طول مسیرها و نمایش هشدارهای خودکار زمانی که کاربر به یک اختلال نزدیک میشود، کنترل میکند.
mapView.navigator.shouldDisplayPrompts = true
هشدارهای اختلال خودکار با رای دادن در حین ناوبری فعال
در طول ناوبری فعال، زمانی که کاربر به یک اختلال در طول مسیر نزدیک میشود، پیامی با اطلاعاتی درباره اختلال و دکمههایی برای رأیگیری در مورد اینکه آیا اختلال همچنان وجود دارد ظاهر میشود. آرای ارسال شده توسط کاربران توسط Google پردازش میشود و ممکن است برای سایر کاربران Google Maps و Navigation SDK روی نقشه ظاهر شود، و همچنین برای تعیین ادامه نمایش اختلال استفاده میشود.

میتوانید نمایش اعلانهای هشدار را در طول ناوبری فعال با استفاده از shouldDisplayPrompts
پیکربندی کنید، که نمایش پیامها را در طول مسیرها نیز کنترل میکند.
mapView.navigator.shouldDisplayPrompts = true
گزارش اختلال در طول ناوبری فعال
در طول حالت ناوبری فعال، دکمه ای در رابط کاربری ناوبری ظاهر می شود که به کاربران اجازه می دهد تا اختلالات جدید در طول مسیر خود را گزارش کنند. وقتی کاربر روی دکمه ضربه می زند، منویی با انواع اختلالات موجود برای گزارش ظاهر می شود. گزارشهایی که کاربران ارسال میکنند توسط Google پردازش میشوند و ممکن است برای سایر کاربران Google Maps و Navigation SDK روی نقشه ظاهر شوند.


با استفاده از navigationReportIncidentButtonEnabled
میتوانید نمایان بودن دکمه گزارش را در حین پیمایش فعال پیکربندی کنید.
// Enables the incident reporting FAB to show in situations where incident // reporting is possible. mapView.settings.navigationReportIncidentButtonEnabled = true
با رابط های کاربری ناوبری سفارشی کار کنید
اگر اجرای شما از Navigation SDK شامل عناصر رابط کاربری سفارشی است، برای جلوگیری از تداخل باید عناصر اختلال در زمان واقعی را در نظر بگیرید.
گزارش موقعیت دکمه
به طور پیشفرض، دکمه گزارش اختلال در انتهای پایین/ گوشه انتهایی نقشه قرار دارد - در سمت راست برای زبانهای چپ به راست و سمت چپ برای زبانهای راست به چپ. اگر برای ایجاد فضا برای عناصر رابط کاربری سفارشی نیاز دارید دکمه گزارش را جابجا کنید، ازbottomTrailingButtonsLayoutGuide
استفاده کنید.سویفت
// Create a new layout guide let topRightLayoutGuide = UILayoutGuide() self.view.addLayoutGuide(topRightLayoutGuide) // Activate constraints using fixed constants here as an example // assuming the current reporting button is of fixed height topRightLayoutGuide.topAnchor.constraint(equalTo: _mapView.navigationHeaderLayoutGuide.bottomAnchor, constant: 50).isActive = true topRightLayoutGuide.trailingAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.trailingAnchor, constant: -14).isActive = true // Assign the layout guide _mapView.bottomTrailingButtonsLayoutGuide = topRightLayoutGuide // Create an alternate layout guide to use when the header and the footer are not full width let topRightAlternateLayoutGuide = UILayoutGuide() self.view.addLayoutGuide(topRightAlternateLayoutGuide) // Activate constraints using fixed constants here as an example // assuming the current RTD button is of fixed height topRightAlternateLayoutGuide.topAnchor.constraint(equalTo: _mapView.navigationHeaderLayoutGuide.bottomAnchor, constant: 20).isActive = true topRightAlternateLayoutGuide.trailingAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.trailingAnchor, constant: -10).isActive = true // Assign the layout guide _mapView.bottomTrailingButtonsAlternateLayoutGuide = topRightAlternateLayoutGuide
هدف-C
// Create a new layout guide UILayoutGuide *topRightLayoutGuide = [[UILayoutGuide alloc] init]; [self.view addLayoutGuide:topRightLayoutGuide]; // Activate constraints using fixed constants here as an example // assuming the current RTD button is of fixed height [[topRightLayoutGuide.topAnchor constraintEqualToAnchor:_mapView.navigationHeaderLayoutGuide.bottomAnchor constant:50] setActive:YES]; [[topRightLayoutGuide.trailingAnchor constraintEqualToAnchor:self.view.safeAreaLayoutGuide.trailingAnchor constant:-14] setActive:YES]; // Assign the layout guide _mapView.bottomTrailingButtonsLayoutGuide = topRightLayoutGuide; // Create an alternate layout guide to use when the header and the footer are not full width UILayoutGuide *topRightAlternateLayoutGuide = [[UILayoutGuide alloc] init]; [self.view addLayoutGuide:topRightAlternateLayoutGuide]; // Activate constraints using fixed constants here as an example // assuming the current RTD button is of fixed height [[topRightAlternateLayoutGuide.topAnchor constraintEqualToAnchor:_mapView.navigationHeaderLayoutGuide.bottomAnchor constant:50] setActive:YES]; [[topRightAlternateLayoutGuide.trailingAnchor constraintEqualToAnchor:self.view.safeAreaLayoutGuide.trailingAnchor constant:-14] setActive:YES]; // Assign the layout guide _mapView.bottomTrailingButtonsAlternateLayoutGuide = topRightAlternateLayoutGuide;
Prompt Visibility API (تجربی)
Prompt Visibility API به شما کمک میکند از تداخل بین عناصر UI تولید شده توسط Navigation SDK و عناصر UI سفارشی خود جلوگیری کنید، با افزودن یک شنونده برای دریافت پاسخ تماس قبل از ظاهر شدن عنصر Navigation SDK UI و به محض حذف عنصر. میتوانید برای عناصر اختلال در زمان واقعی، از جمله کارتهای اطلاعات، درخواستها، و منوی گزارش اختلال - و همچنین برای سایر اعلانهای تولید شده توسط Navigation SDK، تماسهایی دریافت کنید.سویفت
// Additional methods added to GMSNavigatorListener ... func navigatorWillPresentPrompt(_ navigator: GMSNavigator) { // Hide any sort of custom UI element. } func navigatorDidDismissPrompt(_ navigator: GMSNavigator) { // Show any sort of custom UI element. } ...
هدف-C
// Additional methods added to GMSNavigatorListener ... - (void)navigatorWillPresentPrompt:(GMSNavigator *)navigator { // Hide any sort of custom UI element. } - (void)navigatorDidDismissPrompt:(GMSNavigator *)navigator { // Show any sort of custom UI element. } ...