Wenn die Navigation aktiviert ist, wird im Navigation SDK for Android unten links auf der Karte ein Steuerelement für die Geschwindigkeitsbegrenzung angezeigt, das die aktuelle Geschwindigkeitsbegrenzung angibt. Wenn ein Nutzer die Höchstgeschwindigkeit überschreitet, wird das Steuerelement maximiert und ein Tachometer neben der Anzeige der Höchstgeschwindigkeit eingeblendet. Außerdem werden Warnungen ausgelöst, wenn die Geschwindigkeit einen bestimmten Schwellenwert erreicht.
Standardmäßig löst das Navigation SDK eine Warnung bei geringfügiger Geschwindigkeitsüberschreitung aus, wenn der Nutzer das Tempolimit um 5 mph (oder 10 km/h) überschreitet. Außerdem wird die Farbe des Tachometertexts in Rot geändert. Wenn der Nutzer die Höchstgeschwindigkeit um 10 mph (oder 20 km/h) überschreitet, wird eine Warnung ausgelöst und die Hintergrundfarbe des Tachometers ändert sich zu Rot.
Sie können sowohl den Schwellenwert für das Auslösen der Warnungen als auch die Text- und Hintergrundfarben des Tachometers anpassen. Sie können das Navigation SDK auch verwenden, um die Geschwindigkeitsinformationen des Nutzers gemäß den von Ihnen festgelegten Grenzwerten verfügbar zu machen. Sie können beispielsweise Geschwindigkeitsinformationen für Mitfahrdienste bereitstellen, um deren Nutzer dazu anzuregen, sich an die Geschwindigkeitsbegrenzung zu halten und die Sicherheit zu verbessern.
Grenzwerte für Geschwindigkeitswarnungen anpassen
Sie können den Schwellenwert für die Geschwindigkeitswarnung sowohl für geringfügige als auch für erhebliche Geschwindigkeitsüberschreitungen als Prozentsatz über der Geschwindigkeitsbegrenzung der aktuellen Geschwindigkeit anpassen. Sie können auch angeben, wie lange der Schwellenwert überschritten werden muss, bevor die Warnung auf der Karte angezeigt wird.
Im folgenden Codebeispiel wird der Schwellenwert für eine Warnung bei geringfügiger Geschwindigkeitsüberschreitung auf 5 % über dem Tempolimit und der Schwellenwert für eine Warnung bei erheblicher Geschwindigkeitsüberschreitung auf 10 % über dem Tempolimit festgelegt. Sie gibt an, dass auf der Karte eine Benachrichtigung angezeigt wird, nachdem ein Benachrichtigungsgrenzwert 5 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());
Anzeige von Geschwindigkeitswarnungen im Tachometer anpassen
Damit Geschwindigkeitswarnungen besser auffallen, können Sie die Farben der Tachometeranzeige für jede Warnstufe 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 für Warnungen bei geringfügigen und erheblichen 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 NavigationFragment.
navigationFragment.setSpeedometerUiOptions(speedometerUiOptionsBuilder.build());
navigationFragment.setSpeedometerEnabled(true);
Geschwindigkeitsinformationen von Nutzern erhalten
Wenn Ihre Anwendung Informationen zur Geschwindigkeit des Nutzers benötigt, können Sie auch das Navigation SDK verwenden, um die Geschwindigkeitsinformationen des Nutzers verfügbar zu machen. Das kann beispielsweise für Mitfahr-Apps nützlich sein, bei denen ein Betreiber überhöhte Geschwindigkeiten von Nutzern überwachen möchte, um die Sicherheit zu verbessern. Dazu müssen Sie in Ihrer App keine Navigationsansicht für den Nutzer rendern.
Im folgenden Codebeispiel werden Geschwindigkeitsinformationen weitergegeben, wenn die Geschwindigkeit einen bestimmten Prozentsatz über dem Tempolimit 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);