Wenn die Navigation aktiviert ist, zeigt das Navigation SDK for Android links unten auf der Karte ein Steuerelement für das aktuelle Tempolimit an. Wenn ein Nutzer das Tempolimit überschreitet, wird das Steuerelement maximiert, um neben der Anzeige der zulässigen Höchstgeschwindigkeit einen Tachometer anzuzeigen. Außerdem werden Benachrichtigungen ausgelöst, wenn die Geschwindigkeit einen bestimmten Grenzwert erreicht.
Standardmäßig löst das Navigations-SDK eine geringfügige Geschwindigkeitswarnung aus, wenn der Nutzer das Tempolimit um 10 km/h überschreitet, und ändert die Farbe des Tachometertexts in Rot. Wenn der Nutzer das Tempolimit um 10 mph (20 km/h) überschreitet, wird eine deutliche Geschwindigkeitswarnung ausgelöst und die Hintergrundfarbe des Tachometers ändert sich zu Rot.
Sie können sowohl den Grenzwert für das Auslösen der Benachrichtigungen als auch die Text- und Hintergrundfarben des Tachometers anpassen. Sie können auch das Navigation SDK verwenden, um die Geschwindigkeitsinformationen des Nutzers entsprechend den von Ihnen festgelegten Grenzwerten verfügbar zu machen. Sie können beispielsweise Geschwindigkeitsinformationen für Anbieter von Mitfahrdiensten zur Verfügung stellen, damit diese ihre Nutzer dazu anregen können, die Geschwindigkeitsbegrenzung einzuhalten und die Sicherheit zu verbessern.
Schwellenwerte für Geschwindigkeitswarnungen anpassen
Sie können den Schwellenwert für Geschwindigkeitswarnungen sowohl für geringfügige als auch für erhebliche Geschwindigkeitsüberschreitungen als Prozentsatz über dem Geschwindigkeitslimit der aktuellen Geschwindigkeit anpassen. Sie können auch angeben, wie lange der Grenzwert überschritten werden muss, bevor die Karte die Benachrichtigung anzeigt.
Im folgenden Codebeispiel wird der Grenzwert für eine geringfügige Geschwindigkeitsüberschreitung auf 5 % über dem zulässigen Tempo festgelegt und der Grenzwert für eine erhebliche Geschwindigkeitsüberschreitung auf 10 % über dem zulässigen Tempo. Hier wird angegeben, dass auf der Karte eine Benachrichtigung angezeigt wird, nachdem ein Benachrichtigungsgrenzwert fünf Sekunden lang überschritten wurde.
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());
Geschwindigkeitswarnungen im Tachometer anpassen
Um die Geschwindigkeitswarnungen noch interessanter zu gestalten, können Sie die Farben der Tachometeranzeige für jede Benachrichtigungsstufe anpassen.
In der folgenden Tabelle sind die Standardfarben für Geschwindigkeitswarnungen in der Klasse NavigationView
aufgeführt:
Element | Farbe |
---|---|
MinorSpeedAlertBackgroundColorDayMode | 0xffffff (weiß) |
MinorSpeedAlertBackgroundColorNightMode | 0x000000 |
MinorSpeedAlertTextColorDayMode | 0xd93025 |
MinorSpeedAlertTextColorNightMode | 0xd93025 |
MajorSpeedAlertBackgroundColorDayMode | 0xd93025 |
MajorSpeedAlertBackgroundColorNightMode | 0xd93025 |
MajorSpeedAlertTextColorDayMode | 0xffffff (weiß) |
MajorSpeedAlertTextColorNightMode | 0xffffff(weiß) |
Sie können die Text- und Hintergrundfarbe des Tachometers sowohl für geringfügige als auch für erhebliche Geschwindigkeitsüberschreitungen festlegen:
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);
Geschwindigkeitsinformationen von Nutzern erhalten
Wenn für Ihre App Informationen zur Geschwindigkeit der Nutzer weitergegeben werden müssen, können Sie auch das Navigations-SDK verwenden, um die Geschwindigkeitsinformationen des Nutzers verfügbar zu machen. Das kann beispielsweise für Fahrdienst-Apps nützlich sein, bei denen ein Betreiber zu hohe Geschwindigkeiten von Nutzern im Blick behalten möchte, um die Sicherheit zu verbessern. Das ist auch möglich, ohne dass für den Nutzer in der App eine Navigationsansicht gerendert werden muss.
Im folgenden Beispiel werden beispielsweise Geschwindigkeitsinformationen geteilt, wenn die Geschwindigkeit um einen bestimmten Prozentsatz über dem zulässigen Grenzwert liegt:
// 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);