پلتفرم را انتخاب کنید: Android iOS

پیکربندی اختلالات زمان واقعی

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

ویژگی های اختلال در زمان واقعی

Navigation SDK شامل ویژگی‌های اختلال بی‌درنگ زیر به عنوان بخشی از تجربه اصلی ناوبری است:

این ویژگی ها به صورت پیش فرض قابل تنظیم و فعال هستند. بخش‌های زیر اطلاعات بیشتری درباره ویژگی‌ها و گزینه‌های پیکربندی موجود ارائه می‌دهند.

پیام‌های اختلال تعاملی در طول مسیرها

هنگامی که یک برنامه مسیری را در نمای کلی مسیر یا در حین ناوبری فعال نمایش می دهد، هر گونه اختلال فعلی به عنوان پیام در طول مسیر ظاهر می شود. Callout ها شامل نمادی هستند که نوع اختلال را نشان می دهد.

Callouts در طول مسیرها

با استفاده از 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.
}
...