Gdy nawigacja jest włączona, pakiet SDK nawigacji dla Androida wyświetla w lewym dolnym rogu mapy kontrolkę ograniczenia prędkości, która pokazuje aktualne ograniczenie prędkości. Jeśli użytkownik przekroczy ograniczenie prędkości, kontrolka rozwinie się, aby wyświetlić prędkościomierz obok wyświetlacza ograniczeń prędkości, i wyzwoli alerty, gdy prędkość osiągnie określony próg.
Domyślnie pakiet SDK nawigacji uruchamia alert o niewielkim przekroczeniu prędkości, gdy użytkownik przekroczy limit prędkości o 5 mph (lub 10 km/h), i zmienia kolor tekstu prędkościomierza na czerwony. Gdy użytkownik przekroczy dozwoloną prędkość o 10 mph (lub 20 kph), zostanie wyświetlone ostrzeżenie o wysokiej prędkości, a tło prędkościomierza zmieni kolor na czerwony.
Możesz dostosować próg uruchamiania alertów oraz kolory tekstu i tła wyświetlane przez licznik prędkości. Możesz też użyć pakietu Navigation SDK, aby udostępnić informacje o prędkości użytkownika zgodnie z ustawionymi przez Ciebie wartościami progowymi. Możesz na przykład udostępnić informacje o prędkości operatorom usług przewozu osób, aby zachęcić ich użytkowników do przestrzegania ograniczeń prędkości i zwiększenia bezpieczeństwa.
Dostosowywanie progów dla alertów o przekroczeniu prędkości
Możesz dostosować próg alertów o niskiej i wysokiej prędkości jako procent od limitu prędkości bieżącej prędkości. Możesz też określić, jak długo ma być przekroczony próg, zanim mapa wyświetli alert.
W tym przykładzie kodu próg dla alertu o niewielkim przekroczeniu prędkości jest ustawiony na 5 procent powyżej limitu prędkości, a próg dla alertu o znacznym przekroczeniu prędkości – na 10 procent powyżej limitu prędkości. Określa on, ż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 przez prędkościomierz
Aby ostrzeżenia o szybkości były bardziej widoczne, możesz dostosować kolory wyświetlacza prędkości dla każdego poziomu ostrzeżenia.
W tabeli poniżej przedstawiono domyślne kolory alertów dotyczących prędkości w klasie 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 zarówno w przypadku alertów o niskiej, jak i wysokiej 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);
otrzymywać informacje o prędkości od użytkowników;
Jeśli Twoja aplikacja wymaga udostępniania informacji o prędkości użytkownika, możesz też użyć pakietu SDK nawigacji, aby udostępnić informacje o prędkoś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 w celu zwiększenia bezpieczeństwa. Możesz to zrobić bez konieczności renderowania widoku nawigacji dla użytkownika w aplikacji.
Na przykład w tym przykładzie udostępniane są informacje o prędkości, gdy jest ona o określony procent 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);