Configurer les alertes du compteur de vitesse

Lorsque la navigation est activée, le SDK Navigation pour Android affiche une commande de limitation de vitesse en bas à gauche de la carte, qui indique la limitation de vitesse actuelle. Si un utilisateur dépasse la limite de vitesse, le contrôle se développe pour afficher un compteur de vitesse à côté de la limite de vitesse et déclenche des alertes lorsque la vitesse atteint un certain seuil.

Par défaut, le SDK Navigation déclenche une alerte de vitesse mineure lorsque l'utilisateur dépasse la limite de vitesse de 8 km/h (ou 16 km/h) et change la couleur du texte du compteur de vitesse en rouge. Elle déclenche une alerte de vitesse importante lorsque l'utilisateur dépasse la limite de vitesse de 16 km/h (ou 20 km/h) et change la couleur de fond du compteur de vitesse en rouge.

Vous pouvez personnaliser à la fois le seuil de déclenchement des alertes, ainsi que le texte et les couleurs d'arrière-plan affichés par le compteur de vitesse. Vous pouvez également utiliser le SDK Navigation pour rendre les informations sur la vitesse de l'utilisateur disponibles conformément aux seuils que vous avez définis. Par exemple, vous pouvez mettre à la disposition des opérateurs de covoiturage des informations sur la vitesse pour les aider à encourager leurs utilisateurs à respecter les limitations de vitesse et à améliorer la sécurité.

Personnaliser les seuils pour les alertes de vitesse

Vous pouvez personnaliser le seuil d'alerte de vitesse pour les alertes de vitesse mineures et majeures en tant que pourcentage au-dessus de la limite de vitesse actuelle. Vous pouvez également spécifier la durée pendant laquelle le seuil est dépassé avant que l'alerte ne s'affiche sur la carte.

L'exemple de code suivant définit le seuil d'une alerte de vitesse mineure à 5 % au-dessus de la limite de vitesse et le seuil d'une alerte de vitesse majeure à 10 % au-dessus de la limite de vitesse. Il indique que la carte affiche une alerte après qu'un seuil d'alerte a été dépassé pendant cinq secondes.


 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());

Personnaliser l'affichage des alertes de vitesse sur le compteur de vitesse

Pour rendre les alertes de vitesse plus visibles, vous pouvez personnaliser les couleurs de l'affichage du compteur de vitesse pour chaque niveau d'alerte.

Le tableau suivant indique les couleurs par défaut des alertes de vitesse dans la classe NavigationView :

ÉlémentCouleur
MinorSpeedAlertBackgroundColorDayMode 0xffffff(blanc)
MinorSpeedAlertBackgroundColorNightMode 0x000000
MinorSpeedAlertTextColorDayMode 0xd93025
MinorSpeedAlertTextColorNightMode 0xd93025
MajorSpeedAlertBackgroundColorDayMode 0xd93025
MajorSpeedAlertBackgroundColorNightMode 0xd93025
MajorSpeedAlertTextColorDayMode 0xffffff(blanc)
MajorSpeedAlertTextColorNightMode 0xffffff(blanc)

Vous pouvez spécifier la couleur du texte et de l'arrière-plan du compteur de vitesse pour les alertes de vitesse mineures et majeures :

 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);

Recevoir des informations sur la vitesse des utilisateurs

Si votre application nécessite le partage d'informations sur la vitesse de l'utilisateur, vous pouvez également utiliser le SDK Navigation pour rendre ces informations disponibles. Par exemple, cela peut être utile pour les applications de covoiturage dans lesquelles un opérateur peut souhaiter surveiller les excès de vitesse des utilisateurs pour améliorer la sécurité. Vous pouvez également le faire sans avoir à afficher de vue de navigation à l'utilisateur dans votre application.

L'exemple de code suivant partage des informations sur la vitesse lorsque celle-ci dépasse la limitation de vitesse d'un pourcentage spécifié :

 // 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);