Gdy nawigacja jest włączona, pakiet Navigation SDK na Androida wyświetla w lewym dolnym rogu mapy element sterujący ograniczeniem prędkości, który pokazuje aktualne ograniczenie prędkości. Jeśli użytkownik przekroczy ograniczenie prędkości, element sterujący rozwinie się, aby wyświetlić prędkościomierz obok wyświetlacza ograniczenia prędkości, i będzie wywoływać alerty, gdy prędkość osiągnie określony próg.
Domyślnie pakiet Navigation SDK wywołuje alert o niewielkim przekroczeniu prędkości, gdy użytkownik przekroczy limit o 5 mil na godzinę (lub 10 km/h), i zmienia kolor tekstu prędkościomierza na czerwony. Gdy użytkownik przekroczy dozwoloną prędkość o 10 mil na godzinę (lub 20 km/h), włączy się alert o dużej prędkości, a tło prędkościomierza zmieni kolor na czerwony.
Możesz dostosować zarówno próg wyzwalania alertów, jak i kolory tekstu i tła wyświetlane przez prędkościomierz. Możesz też użyć pakietu Navigation SDK, aby udostępniać informacje o prędkości użytkownika zgodnie z ustawionymi przez Ciebie progami. Możesz na przykład udostępniać informacje o prędkości operatorom usług przewozu osób, aby zachęcać użytkowników do przestrzegania ograniczeń prędkości i zwiększać bezpieczeństwo.
Dostosowywanie progów alertów o przekroczeniu prędkości
Możesz dostosować próg powiadomienia o przekroczeniu prędkości dla drobnych i poważnych powiadomień o przekroczeniu prędkości jako procent przekroczenia obowiązującego ograniczenia prędkości. Możesz też określić, jak długo próg ma być przekraczany, zanim na mapie pojawi się alert.
Poniższy przykład kodu ustawia próg dla alertu o niewielkim przekroczeniu prędkości na 5% powyżej limitu prędkości, a próg dla alertu o znacznym przekroczeniu prędkości na 10% powyżej limitu prędkości. Określa, że mapa wyświetla alert po przekroczeniu progu alertu przez 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 o prędkości na prędkościomierzu
Aby alerty dotyczące prędkości były bardziej widoczne, możesz dostosować kolory wyświetlacza prędkościomierza dla każdego poziomu alertu.
W poniższej tabeli znajdziesz domyślne kolory alertów o przekroczeniu prędkości w przypadku NavigationView
:
Element | Kolor |
---|---|
MinorSpeedAlertBackgroundColorDayMode | 0xffffff(biały) |
MinorSpeedAlertBackgroundColorNightMode | 0x000000 |
MinorSpeedAlertTextColorDayMode | 0xd93025 |
MinorSpeedAlertTextColorNightMode | 0xd93025 |
MajorSpeedAlertBackgroundColorDayMode | 0xd93025 |
MajorSpeedAlertBackgroundColorNightMode | 0xd93025 |
MajorSpeedAlertTextColorDayMode | 0xffffff(biały) |
MajorSpeedAlertTextColorNightMode | 0xffffff(biały) |
Możesz określić kolor tekstu i tła prędkościomierza dla mniejszych i większych alertów o przekroczeniu 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);
Otrzymywanie informacji o prędkości od użytkowników
Jeśli Twoja aplikacja wymaga udostępniania informacji o szybkości użytkownika, możesz też użyć pakietu Navigation SDK, aby udostępnić informacje o szybkości użytkownika. Może to być przydatne na przykład w przypadku aplikacji do przewozu osób, w których operator może chcieć monitorować nadmierną prędkość użytkowników, aby zwiększyć bezpieczeństwo. Możesz to zrobić bez konieczności renderowania w aplikacji widoku nawigacji dla użytkownika.
Na przykład w tym przypadku informacje o prędkości są udostępniane, gdy prędkość jest o określony odsetek wyższa od limitu:
// 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);