启用导航后,Navigation SDK for Android 会显示 显示当前速度的地图左下角的限行控件 上限。如果用户超出限速,该控件就会展开,显示 速度计旁边显示限速信息,并在达到限速 达到一定的阈值
默认情况下,当用户使用 超过限速 5 英里/小时(或 10 公里/小时) 速度计文本设为红色。在用户超过 100 个时, 限速 10 英里/小时(或 20 公里/小时),并更改速度计背景 颜色变为红色。
您可以自定义触发提醒的阈值,以及 背景颜色。您还可以使用 Navigation SDK 使系统能够根据阈值提供用户的速度信息 。例如,您可以向 拼车运营商,以鼓励用户遵守网速 限制并提升安全性。
自定义速度提醒阈值
您可以为次要和主要速度自定义速度警报阈值 以超出当前速度限制的百分比形式显示提醒。您还可以 指定超出阈值多长时间之后地图显示提醒。
以下代码示例将次要速度提醒的阈值设置为 5 超出限速的百分比,并将主要限速提醒的阈值设为 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);