Wenn die Navigation aktiviert ist, zeigt das Navigation SDK for Android unten links auf der Karte ein Steuerelement für die Geschwindigkeitsbegrenzung an, das die aktuelle Geschwindigkeitsbegrenzung angibt. Wenn ein Nutzer die Geschwindigkeitsbegrenzung überschreitet, wird das Steuerelement erweitert und zeigt neben der Geschwindigkeitsbegrenzung einen Tacho an. Außerdem werden Benachrichtigungen ausgelöst, wenn die Geschwindigkeit einen bestimmten Grenzwert erreicht.
Standardmäßig löst das Navigation SDK eine geringfügige Geschwindigkeitsbenachrichtigung aus, wenn der Nutzer die Geschwindigkeitsbegrenzung um 8 km/h überschreitet, und ändert die Farbe des Tachotexts in Rot. Wenn der Nutzer die Geschwindigkeitsbegrenzung um 16 km/h überschreitet, wird eine schwerwiegende Geschwindigkeitsbenachrichtigung ausgelöst und die Hintergrundfarbe des Tachos ändert sich in Rot.
Sie können sowohl den Grenzwert für das Auslösen der Benachrichtigungen als auch die Text- und Hintergrundfarben des Tachos anpassen. Außerdem können Sie mit dem Navigation SDK die Geschwindigkeitsinformationen des Nutzers gemäß den von Ihnen festgelegten Grenzwerten zur Verfügung stellen. Sie können beispielsweise Informationen zur Geschwindigkeit für Mitfahrdienste bereitstellen, damit diese ihre Nutzer dazu anhalten können, die Geschwindigkeitsbegrenzung einzuhalten und die Sicherheit zu verbessern.
Grenzwerte für Geschwindigkeitsbenachrichtigungen anpassen
Sie können den Grenzwert für Geschwindigkeitsbenachrichtigungen sowohl für geringfügige als auch für schwerwiegende Geschwindigkeitsbenachrichtigungen als Prozentsatz über der Geschwindigkeitsbegrenzung der aktuellen Geschwindigkeit anpassen. Sie können auch angeben, wie lange der Grenzwert überschritten werden muss, bevor die Benachrichtigung auf der Karte angezeigt wird.
Im folgenden Codebeispiel wird der Grenzwert für eine geringfügige Geschwindigkeitsbenachrichtigung auf 5 % über der Geschwindigkeitsbegrenzung und der Grenzwert für eine schwerwiegende Geschwindigkeitsbenachrichtigung auf 10 % über der Geschwindigkeitsbegrenzung festgelegt. Außerdem wird angegeben, dass die Karte eine Benachrichtigung anzeigt, nachdem ein Grenzwert für Benachrichtigungen 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());
Darstellung von Geschwindigkeitsbenachrichtigungen auf dem Tacho anpassen
Damit Geschwindigkeitsbenachrichtigungen besser wahrgenommen werden, können Sie die Farben der Tachoanzeige für jede Benachrichtigungsstufe anpassen.
In der folgenden Tabelle sind die Standardfarben für Geschwindigkeitsbenachrichtigungen 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 Tachos sowohl für geringfügige als auch für schwerwiegende Geschwindigkeitsbenachrichtigungen angeben:
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 Ihre Anwendung das Teilen von Informationen zur Geschwindigkeit von Nutzern erfordert, können Sie mit dem Navigation SDK auch die Geschwindigkeitsinformationen des Nutzers zur Verfügung stellen. Das kann beispielsweise für Mitfahrdienste nützlich sein, bei denen ein Betreiber überhöhte Geschwindigkeiten von Nutzern überwachen möchte, um die Sicherheit zu verbessern. Das ist auch möglich, ohne dass in Ihrer App eine Navigationsansicht für den Nutzer gerendert werden muss.
Im folgenden Beispiel werden Geschwindigkeitsinformationen geteilt, wenn die Geschwindigkeit einen bestimmten Prozentsatz über der Geschwindigkeitsbegrenzung 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);