配置速度计提醒

启用导航后,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);