Quando la navigazione è attivata e la modalità di viaggio è impostata su Guida, l'SDK Navigation per iOS mostra un controllo del limite di velocità nell'angolo in basso a sinistra della mappa che indica il limite di velocità corrente. Se un conducente supera il limite di velocità, il controllo si espande per mostrare un tachimetro accanto al display del limite di velocità e attiva gli avvisi quando la velocità raggiunge una determinata soglia.
Per impostazione predefinita, l'SDK Navigation attiva un avviso di velocità minore quando il conducente supera il limite di velocità di 8 km/h e cambia il colore del testo del tachimetro in rosso. Attiva un avviso di velocità elevato quando il conducente supera il limite di velocità di 10 mph (20 km/h) e cambia il colore di sfondo del tachimetro in rosso.
Puoi personalizzare sia la soglia per l'attivazione degli avvisi sia i colori del testo e dello sfondo visualizzati dal tachimetro. Puoi anche utilizzare l'SDK Navigation per rendere disponibili le informazioni sulla velocità del conducente. Ad esempio, potresti mettere a disposizione degli operatori di ride sharing informazioni sulla velocità per aiutarli a incoraggiare i loro conducenti a rispettare il limite di velocità e migliorare la sicurezza.
Personalizzare le soglie per gli avvisi di velocità
Puoi personalizzare la soglia di avviso di velocità sia per gli avvisi di velocità minori che per quelli maggiori in percentuale rispetto al limite di velocità della velocità corrente. Puoi anche specificare per quanto tempo la soglia viene superata prima che la mappa mostri l'avviso.
L'esempio di codice seguente imposta la soglia per un avviso di velocità minore sul 5 percento in più rispetto al limite di velocità e la soglia per un avviso di velocità maggiore sul 10 percento in più rispetto al limite di velocità. Specifica che la mappa mostra un avviso dopo che è stata superata una soglia di avviso per cinque secondi.
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.
Personalizzare la modalità di visualizzazione degli avvisi di velocità sul tachimetro
Puoi personalizzare i colori del display del tachimetro per ogni livello di avviso.
La tabella seguente mostra i colori predefiniti per gli avvisi di velocità nella classe
GMSNavigationSpeedometerUIOptions
:
Elemento | Colore |
---|---|
MinorSpeedAlertBackgroundColorDayMode | 0xffffff(bianco) |
MinorSpeedAlertBackgroundColorNightMode | 0x000000 |
MinorSpeedAlertTextColorDayMode | 0xd93025 |
MinorSpeedAlertTextColorNightMode | 0xd93025 |
MajorSpeedAlertBackgroundColorDayMode | 0xd93025 |
MajorSpeedAlertBackgroundColorNightMode | 0xd93025 |
MajorSpeedAlertTextColorDayMode | 0xffffff(bianco) |
MajorSpeedAlertTextColorNightMode | 0xffffff(bianco) |
Puoi specificare il testo e il colore di sfondo del tachimetro sia per gli avvisi di velocità minori che per quelli gravi:
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;
Ricezione di informazioni sulla velocità dai conducenti
Se la tua applicazione richiede la condivisione di informazioni sulla velocità del conducente, puoi anche utilizzare l'SDK Navigation per rendere disponibili le informazioni sulla velocità del conducente. Questo può essere utile per le applicazioni di ridesharing in cui un operatore potrebbe voler monitorare la velocità eccessiva dei conducenti per migliorare la sicurezza.
Ad esempio, il seguente esempio condivide le informazioni sulla velocità quando la velocità è superiore di una percentuale specificata rispetto al limite di velocità:
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 { ... }