وقتی ناوبری فعال باشد، Navigation SDK for Android کنترل محدودیت سرعت را در گوشه پایین سمت راست نقشه نمایش میدهد که محدودیت سرعت فعلی را نشان میدهد. اگر کاربر از حد مجاز سرعت فراتر رود، کنترل گسترش مییابد تا سرعتسنجی را در کنار نمایش حد مجاز سرعت نشان دهد و وقتی سرعت به آستانه خاصی میرسد، هشدارها را فعال میکند.
بهطور پیشفرض، وقتی کاربر از حد مجاز سرعت بهاندازه ۵ مایل در ساعت (یا ۱۰ کیلومتر در ساعت) فراتر میرود، Navigation SDK هشدار سرعت جزئی را فعال میکند و رنگ نوشتار سرعتسنج را به قرمز تغییر میدهد. وقتی کاربر از حد مجاز سرعت بهاندازه ۱۰ مایل در ساعت (یا ۲۰ کیلومتر در ساعت) فراتر میرود، هشدار سرعت زیاد را فعال میکند و رنگ پسزمینه سرعتسنج را به قرمز تغییر میدهد.
میتوانید هم آستانه فعال شدن هشدارها و هم رنگ نوشتار و پسزمینه نمایش دادهشده در سرعتسنج را سفارشیسازی کنید. همچنین میتوانید از Navigation SDK استفاده کنید تا اطلاعات سرعت کاربر را مطابق با آستانههایی که تنظیم کردهاید دردسترس قرار دهید. برای مثال، میتوانید اطلاعات سرعت را دردسترس اپراتورهای همسفری قرار دهید تا به آنها کمک کنید کاربرانشان را به رعایت محدودیت سرعت و بهبود ایمنی تشویق کنند.
سفارشیسازی آستانه هشدارهای سرعت
میتوانید آستانه هشدار سرعت را برای هشدارهای سرعت جزئی و کلی بهعنوان درصدی از حد مجاز سرعت فعلی سفارشیسازی کنید. همچنین میتوانید مشخص کنید که آستانه چقدر باید فراتر برود تا نقشه هشدار را نمایش دهد.
نمونه کد زیر آستانه هشدار سرعت جزئی را روی ۵ درصد بالاتر از حد مجاز سرعت و آستانه هشدار سرعت عمده را روی ۱۰ درصد بالاتر از حد مجاز سرعت تنظیم میکند. این قانون مشخص میکند که نقشه پساز اینکه آستانه هشدار بهمدت ۵ ثانیه رد شد، هشداری را نمایش دهد.
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(white) |
| MinorSpeedAlertBackgroundColorNightMode | 0x000000 |
| MinorSpeedAlertTextColorDayMode | 0xd93025 |
| MinorSpeedAlertTextColorNightMode | 0xd93025 |
| MajorSpeedAlertBackgroundColorDayMode | 0xd93025 |
| MajorSpeedAlertBackgroundColorNightMode | 0xd93025 |
| MajorSpeedAlertTextColorDayMode | 0xffffff(white) |
| MajorSpeedAlertTextColorNightMode | 0xffffff(white) |
میتوانید رنگ نوشتار و پسزمینه سرعتسنج را برای هشدارهای سرعت جزئی و عمده مشخص کنید:
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 NavigationFragment.
navigationFragment.setSpeedometerUiOptions(speedometerUiOptionsBuilder.build());
navigationFragment.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);