وقتی پیمایش فعال است، Navigation SDK for Android یک کنترل محدودیت سرعت را در گوشه سمت چپ پایین نقشه نمایش می دهد که محدودیت سرعت فعلی را نشان می دهد. اگر کاربر از حد مجاز تجاوز کند، کنترل گسترش مییابد تا یک سرعتسنج در کنار نمایشگر محدودیت سرعت نمایش داده شود و زمانی که سرعت به آستانه معینی میرسد، هشدارها را فعال میکند.
به طور پیشفرض، Navigation SDK زمانی که کاربر از حد مجاز سرعت 5 مایل در ساعت (یا 10 کیلومتر در ساعت) فراتر رود، هشدار سرعت جزئی را ایجاد میکند و رنگ متن سرعتسنج را به قرمز تغییر میدهد. هنگامی که کاربر از حد مجاز سرعت 10 مایل در ساعت (یا 20 کیلومتر در ساعت) فراتر می رود، هشدار سرعت اصلی را ایجاد می کند و رنگ پس زمینه سرعت سنج را به قرمز تغییر می دهد.
شما می توانید هم آستانه برای فعال کردن هشدارها و هم رنگ متن و پس زمینه را که سرعت سنج نمایش می دهد سفارشی کنید. همچنین می توانید از Navigation SDK برای در دسترس قرار دادن اطلاعات سرعت کاربر مطابق با آستانه هایی که تعیین کرده اید استفاده کنید. برای مثال، میتوانید اطلاعات سرعت را در اختیار اپراتورهای اشتراکگذاری سواری قرار دهید تا به آنها کمک کنید تا کاربران خود را به رعایت محدودیت سرعت و بهبود ایمنی تشویق کنند.
آستانه ها را برای هشدارهای سرعت سفارشی کنید
شما می توانید آستانه هشدار سرعت را برای هر دو هشدار سرعت جزئی و اصلی به عنوان درصدی بیش از حد مجاز سرعت سرعت فعلی سفارشی کنید. همچنین میتوانید مشخص کنید که چه مدت از آستانه فراتر رفته است تا نقشه هشدار را نمایش دهد.
مثال کد زیر آستانه هشدار سرعت جزئی را به پنج درصد بیش از حد مجاز سرعت، و آستانه برای هشدار سرعت اصلی را روی 10 درصد بیش از حد مجاز تعیین می کند. مشخص میکند که نقشه پس از گذشت پنج ثانیه از آستانه هشدار، هشداری را نشان میدهد.
float minorSpeedAlertThresholdPercentage = 5; float
majorSpeedAlertThresholdPercentage = 10; double severityUpgradeDurationSeconds =
5;
// Configure SpeedAlertOptions SpeedAlertOptions.Builder
speedAlertOptionsBuilder = new SpeedAlertOptions.Builder();
speedAlertOptionsBuilder.setSpeedAlertThresholdPercentage(
SpeedAlertSeverity.MINOR, minorSpeedAlertThresholdPercentage);
speedAlertOptionsBuilder.setSpeedAlertThresholdPercentage(
SpeedAlertSeverity.MAJOR, majorSpeedAlertThresholdPercentage);
speedAlertOptionsBuilder.setSeverityUpgradeDurationSeconds(severityUpgradeDurationSeconds);
// Set SpeedAlertOptions to Navigator.
navigator.setSpeedAlertOptions(speedAlertOptionsBuilder.build());
نحوه نمایش سرعت سنج هشدارهای سرعت را سفارشی کنید
برای جلب توجه بیشتر هشدارهای سرعت، می توانید رنگ های نمایشگر سرعت سنج را برای هر سطح هشدار سفارشی کنید.
جدول زیر رنگ های پیش فرض هشدارهای سرعت در کلاس NavigationView
را نشان می دهد:
عنصر | رنگ |
---|---|
MinorSpeedAlertBackgroundColorDayMode | 0xffffff (سفید) |
MinorSpeedAlertBackgroundColorNightMode | 0x000000 |
MinorSpeedAlertTextColorDayMode | 0xd93025 |
MinorSpeedAlertTextColorNightMode | 0xd93025 |
MajorSpeedAlertBackgroundColorDayMode | 0xd93025 |
MajorSpeedAlertBackgroundColorNightMode | 0xd93025 |
MajorSpeedAlertTextColorDayMode | 0xffffff (سفید) |
MajorSpeedAlertTextColorNightMode | 0xffffff (سفید) |
میتوانید متن و رنگ پسزمینه سرعتسنج را برای هشدارهای سرعت جزئی و اصلی مشخص کنید:
SpeedometerUiOptions speedometerUiOptions = new SpeedometerUiOptions.Builder()
.setBackgroundColorDayMode(MINOR, some_color)
.setBackgroundColorNightMode(MINOR, some_color) .setTextColorDayMode(MINOR,
some_color) .setTextColorNightMode(MINOR, some_color)
.setBackgroundColorDayMode(MAJOR, some_color)
.setBackgroundColorNightMode(MAJOR, some_color) .setTextColorDayMode(MAJOR,
some_color) .setTextColorNightMode(MAJOR, some_color) .build();
// Set SpeedometerUiOptions to NavigationView.
navigationView.setSpeedometerUiOptions(speedometerUiOptionsBuilder.build());
navigationView.setSpeedometerEnabled(true);
// Set SpeedometerUiOptions to SupportNavigationFragment.
supportNavigationFragment.setSpeedometerUiOptions(speedometerUiOptionsBuilder.build());
supportNavigationFragment.setSpeedometerEnabled(true);
دریافت اطلاعات سرعت از کاربران
اگر برنامه شما به اشتراک گذاری اطلاعات در مورد سرعت کاربر نیاز دارد، می توانید از Navigation SDK نیز برای در دسترس قرار دادن اطلاعات سرعت کاربر استفاده کنید. به عنوان مثال، این می تواند برای برنامه های اشتراک گذاری سواری مفید باشد که در آن اپراتور ممکن است بخواهد سرعت بیش از حد توسط کاربران را برای بهبود ایمنی کنترل کند. این را می توان بدون نیاز به ارائه نمای ناوبری به کاربر در برنامه شما نیز انجام داد.
به عنوان مثال، مثال زیر زمانی که سرعت یک درصد مشخص از حد مجاز سرعت باشد، اطلاعات سرعت را به اشتراک می گذارد:
// Existing flow for creating Navigator. NavigationApi.getNavigator();
// Set the SpeedAlertOptions for the MAJOR and MINOR alerts. (Note that the //
severityUpgradeDurationSeconds field is by design not used in this flow.)
SpeedAlertOptions speedAlertOptions = ...;
navigator.setSpeedAlertOptions(speedAlertOptions);
// Implement SpeedingListener. SpeedingListener speedingListener = new
SpeedingListener() { @Override public void onSpeedingUpdated(float
percentageAboveLimit, SpeedAlertSeverity speedAlertSeverity) { ... } };
// Set speedingListener to Navigator.
navigator.setSpeedingListener(speedingListener);