وقتی پیمایش فعال است، 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);