Quando a navegação está ativada e o modo de viagem está definido como "De carro", o SDK Navigation para iOS mostra um controle de limite de velocidade no canto inferior esquerdo do mapa que indica o limite atual. Se um motorista ultrapassar o limite de velocidade, o controle será expandido para mostrar um velocímetro ao lado do limite de velocidade e acionará alertas quando a velocidade atingir um determinado limite.
Por padrão, o SDK do Navigation aciona um alerta de velocidade leve quando o motorista excede o limite de velocidade em 5 mph (ou 10 km/h) e muda a cor do texto do velocímetro para vermelho. Ele aciona um alerta de velocidade grave quando o motorista ultrapassa o limite de velocidade em 16 km/h (ou 20 km/h) e muda a cor de fundo do velocímetro para vermelho.
É possível personalizar o limite para acionar os alertas e as cores do texto e do plano de fundo mostradas no velocímetro. Você também pode usar o SDK de navegação para disponibilizar as informações de velocidade do motorista. Por exemplo, você pode disponibilizar informações de velocidade para operadores de transporte por aplicativo para que eles incentivem os motoristas a respeitar o limite de velocidade e melhorar a segurança.
Personalizar limites para alertas de velocidade
É possível personalizar o limite de alerta de velocidade para alertas leves e graves como uma porcentagem acima do limite de velocidade atual. Você também pode especificar por quanto tempo o limite é excedido antes que o mapa mostre o alerta.
O exemplo de código a seguir define o limite para um alerta de velocidade baixa como 5% acima do limite de velocidade e o limite para um alerta de velocidade alta como 10% acima do limite de velocidade. Ele especifica que o mapa mostra um alerta depois que um limite de alerta é excedido por cinco segundos.
Swift
let minorSpeedAlertThresholdPercentage: CGFloat = 0.05 let
majorSpeedAlertThresholdPercentage: CGFloat = 0.1 let
severityUpgradeDurationSeconds: TimeInterval = 5
// Configure SpeedAlertOptions let mutableSpeedAlertOptions:
GMSNavigationMutableSpeedAlertOptions = GMSNavigationMutableSpeedAlertOptions()
mutableSpeedAlertOptions.setSpeedAlertThresholdPercentage(minorSpeedAlertThresholdPercentage,
for: .minor)
mutableSpeedAlertOptions.setSpeedAlertThresholdPercentage(majorSpeedAlertThresholdPercentage,
for: .major) mutableSpeedAlertOptions.severityUpgradeDurationSeconds =
severityUpgradeDurationSeconds
// Set SpeedAlertOptions to Navigator. mapView.navigator?.speedAlertOptions =
mutableSpeedAlertOptions; mapView.navigator?.add(self); // Only needed if
listening to the delegate events.
Objective-C
static const CGFloat minorSpeedAlertThresholdPercentage = 0.05; static const
CGFloat majorSpeedAlertThresholdPercentage = 0.1; static const NSTimeInterval
severityUpgradeDurationSeconds = 5;
// Configure SpeedAlertOptions GMSNavigationMutableSpeedAlertOptions
*mutableSpeedAlertOptions = [[GMSNavigationMutableSpeedAlertOptions alloc]
init]; [mutableSpeedAlertOptions setSpeedAlertThresholdPercentage:
minorSpeedAlertThresholdPercentage
forSpeedAlertSeverity:GMSNavigationSpeedAlertSeverityMinor];
[mutableSpeedAlertOptions
setSpeedAlertThresholdPercentage:majorSpeedAlertThresholdPercentage
forSpeedAlertSeverity:GMSNavigationSpeedAlertSeverityMajor];
[mutableSpeedAlertOptions
setSeverityUpgradeDurationSeconds:severityUpgradeDurationSeconds];
// Set SpeedAlertOptions to Navigator. mapView.navigator.speedAlertOptions =
mutableSpeedAlertOptions; [mapView.navigator addListener:self]; // Only needed
if listening to the delegate events.
Personalizar como o velocímetro mostra os alertas de velocidade
É possível personalizar as cores do velocímetro para cada nível de alerta.
A tabela a seguir mostra as cores padrão dos alertas de velocidade na classe
GMSNavigationSpeedometerUIOptions:
| Elemento | Cor |
|---|---|
| MinorSpeedAlertBackgroundColorDayMode | 0xffffff(branco) |
| MinorSpeedAlertBackgroundColorNightMode | 0x000000 |
| MinorSpeedAlertTextColorDayMode | 0xd93025 |
| MinorSpeedAlertTextColorNightMode | 0xd93025 |
| MajorSpeedAlertBackgroundColorDayMode | 0xd93025 |
| MajorSpeedAlertBackgroundColorNightMode | 0xd93025 |
| MajorSpeedAlertTextColorDayMode | 0xffffff(branco) |
| MajorSpeedAlertTextColorNightMode | 0xffffff(branco) |
É possível especificar a cor do texto e do plano de fundo do velocímetro para alertas de velocidade menores e maiores:
Swift
let mutableSpeedometerUIOptions: GMSNavigationMutableSpeedometerUIOptions =
GMSNavigationMutableSpeedometerUIOptions()
mutableSpeedometerUIOptions.setTextColor(minorSpeedAlertTextColor, for: .minor,
lightingMode: .normal)
mutableSpeedometerUIOptions.setTextColor(majorSpeedAlertTextColor, for: .major,
lightingMode: .normal)
mutableSpeedometerUIOptions.setBackgroundColor(minorSpeedAlertNightModeBackgroundColor,
for: .minor, lightingMode: .lowLight)
mutableSpeedometerUIOptions.setBackgroundColor(majorSpeedAlertDayModeBackgroundColor,
for: .major, lightingMode: .normal)
mapView.settings.speedometerUIOptions = mutableSpeedometerUIOptions
Objective-C
GMSNavigationMutableSpeedometerUIOptions *mutableSpeedometerUIOptions =
[[GMSNavigationMutableSpeedometerUIOptions alloc] init];
[mutableSpeedometerUIOptions setTextColor: minorSpeedAlertTextColor
forSpeedAlertSeverity: GMSNavigationSpeedAlertSeverityMinor lightingMode:
GMSNavigationLightingModeNormal]; [mutableSpeedometerUIOptions setTextColor:
majorSpeedAlertTextColor forSpeedAlertSeverity:
GMSNavigationSpeedAlertSeverityMajor lightingMode:
GMSNavigationLightingModeNormal]; [mutableSpeedometerUIOptions
setBackgroundColor: minorSpeedAlertNightModeBackgroundColor
forSpeedAlertSeverity: GMSNavigationSpeedAlertSeverityMinor lightingMode:
GMSNavigationLightingModeLowLight]; [mutableSpeedometerUIOptions
setBackgroundColor: majorSpeedAlertDayModeBackgroundColor forSpeedAlertSeverity:
GMSNavigationSpeedAlertSeverityMajor
lightingMode:GMSNavigationLightingModeNormal];
mapView.settings.speedometerUIOptions = mutableSpeedometerUIOptions;
Receber informações de velocidade dos motoristas
Se o aplicativo precisar compartilhar informações sobre a velocidade do motorista, use o SDK de navegação para disponibilizar esses dados. Isso pode ser útil para aplicativos de carona compartilhada em que um operador pode querer monitorar o excesso de velocidade dos motoristas para melhorar a segurança.
Por exemplo, o exemplo a seguir compartilha informações de velocidade quando ela é uma porcentagem especificada acima do limite de velocidade:
Swift
// Listener method for sharing speed information when the speed exceeds the
speed limit by a specified percentage. #pragma mark GMSNavigatorListener func
navigator(_ navigator : GMSNavigator, didUpdateSpeedingPercentage
percentageAboveLimit : Float) { ... }
Objective-C
// Listener method listening to speeding feed. #pragma mark
GMSNavigatorListener - (void)navigator:(GMSNavigator *)navigator
didUpdateSpeedingPercentage:(float)percentageAboveLimit { ... }