Configura avvisi contachilometri

Quando la navigazione è abilitata e la modalità di viaggio è impostata su Auto, l'SDK di navigazione per iOS mostra un controllo del limite di velocità nell'angolo in basso a sinistra della mappa che mostra il limite di velocità corrente. Se un conducente supera il limite di velocità, il controllo si espande in modo da visualizzare un tachimetro accanto al limite di velocità e attiva avvisi quando la velocità raggiunge una determinata soglia.

Per impostazione predefinita, l'SDK di navigazione attiva un avviso di velocità minore quando il conducente supera il limite di velocità di 10 km/h e cambia il colore del testo del tachimetro in rosso. Attiva un allarme importante quando il conducente supera il limite di velocità di 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 di sfondo visualizzati dal tachimetro. Puoi anche usare l'SDK di navigazione per rendere disponibili le informazioni sulla velocità del conducente. Ad esempio, potresti rendere disponibili informazioni sulla velocità agli operatori di ridesharing per incoraggiare i conducenti a rispettare i limiti di velocità e migliorare la sicurezza.

Personalizzazione delle soglie per gli avvisi di velocità

Puoi personalizzare la soglia di avviso di velocità per gli avvisi di velocità minori e principali come percentuale rispetto al limite di velocità della velocità attuale. Puoi anche specificare per quanto tempo la soglia viene superata prima che la mappa mostri l'avviso.

Nell'esempio di codice riportato di seguito, la soglia per un avviso di velocità minore viene impostata al 5% rispetto al limite di velocità e la soglia per un avviso di velocità maggiore al 10% rispetto al limite di velocità. Indica che la mappa visualizza un avviso dopo aver superato 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.

Personalizzazione della modalità di visualizzazione degli avvisi di velocità sul tachimetro

Puoi personalizzare i colori del display del tachimetro per ogni livello di avviso.

La seguente tabella mostra i colori predefiniti per gli avvisi di velocità nella classe GMSNavigationSpeedometerUIOptions:

ElementoColore
MinorSpeedAlertBackgroundColorDayMode 0xrate(bianco)
MinorSpeedAlertBackgroundColorNightMode 0x000000
MinorSpeedAlertTextColorDayMode 0xd93025
MinorSpeedAlertTextColorNightMode 0xd93025
MajorSpeedAlertBackgroundColorDayMode 0xd93025
MajorSpeedAlertBackgroundColorNightMode 0xd93025
MajorSpeedAlertTextColorDayMode 0xrate(bianco)
MajorSpeedAlertTextColorNightMode 0xrate(bianco)

Puoi specificare il colore del testo e dello sfondo del tachimetro per gli avvisi di velocità minori e principali:

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 delle informazioni sulla velocità del conducente, puoi anche utilizzare l'SDK di navigazione 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 l'eccessiva velocità dei conducenti per migliorare la sicurezza.

Ad esempio, il seguente esempio condivide le informazioni sulla velocità quando la velocità è una percentuale specificata superiore 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 { ... }