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 dans l'angle inférieur gauche de la carte, qui indique la limite de vitesse actuelle. Si un conducteur dépasse la limite de vitesse, la commande se développe pour afficher un compteur de vitesse à côté de l'affichage de la limite de vitesse et déclencher des alertes lorsque la vitesse atteint un certain seuil.

Par défaut, le SDK Navigation déclenche une alerte de vitesse mineure lorsque le conducteur dépasse la limite de vitesse de 5 mph (ou 10 km/h) et affiche le texte du compteur de vitesse en rouge. Elle déclenche une alerte de vitesse majeure lorsque le conducteur dépasse la limite de vitesse de 10 mph (ou 20 km/h) et fait passer la couleur d'arrière-plan du compteur de vitesse au rouge.

Vous pouvez personnaliser à la fois le seuil de déclenchement des alertes et les couleurs de texte et d'arrière-plan affichées par le compteur de vitesse. Vous pouvez également utiliser le SDK Navigation pour rendre les informations de vitesse du conducteur disponibles en fonction des seuils que vous avez définis. Par exemple, vous pouvez mettre à la disposition des opérateurs de VTC des informations sur la vitesse pour les aider à encourager leurs conducteurs à respecter la limite de vitesse et à améliorer la sécurité.

Personnaliser les seuils pour les alertes de vitesse

Vous pouvez personnaliser le seuil des alertes de vitesse mineures et majeures sous la forme d'un pourcentage supérieur à 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'une alerte de vitesse mineure sur 5 % au-dessus de la limite de vitesse et le seuil d'une alerte de vitesse majeure sur 10 % au-dessus de la limite de vitesse. Il spécifie que la carte affiche une alerte lorsqu'un seuil d'alerte est 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());

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

Pour que les alertes de vitesse attirent davantage l'attention, 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 pour les 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 conducteurs

Si votre application nécessite de partager des informations sur la vitesse du conducteur, vous pouvez également utiliser le SDK Navigation pour les rendre disponibles. Cela peut être utile pour les applications de partage de course dans lesquelles un opérateur peut souhaiter surveiller les excès de vitesse excessives des conducteurs afin d'améliorer la sécurité. Cela peut également être fait sans avoir à afficher une vue de navigation dans votre application.

Par exemple, l'exemple suivant partage des informations sur la vitesse lorsque la vitesse est un pourcentage spécifié au-dessus de 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);