Configurer les alertes du compteur de vitesse

Lorsque la navigation est activée, le SDK Navigation pour Android affiche un contrôle de la limite de vitesse dans l'angle inférieur gauche de la carte, qui indique la limite 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 l'affichage 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 5 mph (ou 10 km/h) et change la couleur du texte du compteur de vitesse en rouge. Il déclenche une alerte de vitesse majeure lorsque l'utilisateur dépasse la limite de vitesse de 10 mph (ou 20 km/h) et change la couleur de fond du compteur de vitesse en rouge.

Vous pouvez personnaliser le seuil de déclenchement des alertes, ainsi que les couleurs du texte et de l'arrière-plan du compteur de vitesse. Vous pouvez également utiliser le SDK Navigation pour mettre à disposition les informations de vitesse de l'utilisateur 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 à inciter leurs utilisateurs à respecter la limite de vitesse et à améliorer la sécurité.

Personnaliser les seuils des alertes de vitesse

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

L'exemple de code suivant définit le seuil d'alerte de vitesse mineure sur cinq pour cent au-dessus de la limite de vitesse et le seuil d'alerte de vitesse majeure sur 10 pour cent au-dessus de la limite de vitesse. Il indique que la carte affiche une alerte après cinq secondes de dépassement du seuil d'alerte.


 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 dans le compteur de vitesse

Pour que les alertes de vitesse soient 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 SupportNavigationFragment.
supportNavigationFragment.setSpeedometerUiOptions(speedometerUiOptionsBuilder.build());
 supportNavigationFragment.setSpeedometerEnabled(true);

Recevoir des informations sur la vitesse des utilisateurs

Si votre application nécessite de partager des informations sur la vitesse de l'utilisateur, vous pouvez également utiliser le SDK Navigation pour mettre à disposition les informations de vitesse de l'utilisateur. Par exemple, cela peut être utile pour les applications de covoiturage, dans lesquelles un opérateur peut vouloir surveiller la vitesse excessive des utilisateurs afin d'améliorer la sécurité. Vous pouvez également le faire sans avoir à afficher une vue de navigation à l'utilisateur dans votre application.

Par exemple, l'exemple suivant partage des informations sur la vitesse lorsque la vitesse dépasse d'un pourcentage spécifié la limite de vitesse:

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