Gdy nawigacja jest włączona, pakiet SDK nawigacji na Androida wyświetla w lewym dolnym rogu mapy element sterujący, który wskazuje aktualne ograniczenie prędkości. Jeśli kierowca przekroczy dozwoloną prędkość, przycisk rozwija się i wyświetla prędkościomierz obok wyświetlacza ograniczenia prędkości. Gdy prędkość osiągnie określony próg, wyświetli się alert.
Domyślnie pakiet SDK nawigacji aktywuje drobny alert prędkości, gdy kierowca przekroczy dozwoloną prędkość o 5 mph (lub 10 km/h), i zmieni kolor tekstu prędkościomierza na czerwony. Włącza ostrzeżenie, gdy kierowca przekroczy dozwoloną prędkość o 20 km/h i zmienia kolor tła prędkościomierza na czerwony.
Możesz dostosować zarówno próg uruchamiania alertów, jak i kolory tekstu i tła wyświetlane przez prędkościomierz. Możesz też użyć pakietu SDK nawigacji, by udostępnić informacje o prędkości kierowcy zgodnie z ustawionymi progami. Na przykład możesz udostępnić informacje o szybkości jazdy operatorom przejazdów, aby zachęcić ich do przestrzegania limitów prędkości i poprawić bezpieczeństwo.
Dostosuj progi alertów dotyczących prędkości
Możesz dostosować próg alertu o szybkości w przypadku drobnych i poważnych alertów o prędkości. Wartość ta będzie określona jako wartość procentowa w stosunku do bieżącego ograniczenia prędkości. Możesz też określić, po jakim czasie zostanie przekroczony próg, zanim na mapie wyświetli się alert.
Poniższy przykładowy kod ustawia próg w przypadku niewielkiego alertu o prędkości na 5% przekroczenia limitu prędkości, a w przypadku poważnego alertu o prędkości na 10%. Wskazuje on, że mapa wyświetla alert po przekroczeniu progu alertu na 5 sekund.
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());
Dostosowywanie sposobu wyświetlania alertów prędkościomierza
Aby użytkownicy otrzymywali więcej informacji o alertach o prędkości, możesz dostosować kolory wyświetlacza prędkościomierza do każdego poziomu alertu.
W tej tabeli znajdziesz domyślne kolory alertów o szybkości w klasie NavigationView
:
Element | Kolor |
---|---|
MinorSpeedAlertBackgroundColorDayMode | 0xffffff(biała) |
MinorSpeedAlertBackgroundColorNightMode | 0x000000 |
MinorSpeedAlertTextColorDayMode | 0 x D93025 |
MinorSpeedAlertTextColorNightMode | 0 x D93025 |
MajorSpeedAlertBackgroundColorDayMode | 0 x D93025 |
MajorSpeedAlertBackgroundColorNightMode | 0 x D93025 |
MajorSpeedAlertTextColorDayMode | 0xffffff(biała) |
MajorSpeedAlertTextColorNightMode | 0xffffff(biała) |
Możesz określić tekst i kolor tła prędkościomierza – zarówno dla małych, jak i dla dużych prędkości:
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);
Otrzymuj od kierowców informacje o szybkości
Jeśli Twoja aplikacja wymaga udostępniania informacji o prędkości kierowcy, możesz też skorzystać z pakietu Navigation SDK, aby udostępnić informacje o prędkości kierowcy. Może to być przydatne w przypadku wspólnych przejazdów, w których operator może monitorować nadmierną prędkość kierowców, aby zwiększyć bezpieczeństwo. Można to również zrobić bez konieczności renderowania widoku nawigacji w aplikacji.
Na przykład ten przykład przedstawia informacje o prędkości, która przekracza limit o określoną wartość procentową:
// 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);