Настроить оповещения спидометра

Когда навигация включена и режим поездки установлен на «вождение», SDK навигации для iOS отображает в левом нижнем углу карты индикатор ограничения скорости, показывающий текущее ограничение скорости. Если водитель превышает ограничение скорости, индикатор расширяется, отображая спидометр рядом с индикатором ограничения скорости, и запускает оповещения, когда скорость достигает определенного порогового значения.

По умолчанию, SDK навигации срабатывает небольшое предупреждение о превышении скорости, когда водитель превышает ограничение скорости на 5 миль в час (или 10 км/ч), и меняет цвет текста на спидометре на красный. Оно срабатывает значительное предупреждение о превышении скорости, когда водитель превышает ограничение скорости на 10 миль в час (или 20 км/ч), и меняет цвет фона спидометра на красный.

Вы можете настроить как пороговое значение для срабатывания оповещений, так и цвет текста и фона, отображаемых на спидометре. Вы также можете использовать SDK навигации, чтобы предоставить водителю информацию о скорости. Например, вы можете предоставить информацию о скорости операторам служб такси, чтобы помочь им побудить своих водителей соблюдать скоростной режим и повысить безопасность.

Настройка пороговых значений для оповещений о превышении скорости.

Вы можете настроить пороговое значение для оповещений о превышении скорости, как незначительных, так и существенных, в процентах от текущего ограничения скорости. Вы также можете указать, через какое время после превышения порогового значения на карте отобразится предупреждение.

В приведенном ниже примере кода пороговое значение для незначительного превышения скорости установлено на уровне пяти процентов от разрешенной скорости, а для серьезного превышения скорости — на уровне 10 процентов от разрешенной скорости. Указано, что карта отображает предупреждение после превышения порогового значения в течение пяти секунд.

Быстрый

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.

Настройка отображения предупреждений о превышении скорости на спидометре

Вы можете настроить цвета отображения спидометра для каждого уровня оповещения.

В следующей таблице показаны цвета по умолчанию для оповещений о превышении скорости в классе GMSNavigationSpeedometerUIOptions :

Элемент Цвет
MinorSpeedAlertBackgroundColorDayMode 0xffffff(белый)
MinorSpeedAlertBackgroundColorNightMode 0x000000
MinorSpeedAlertTextColorDayMode 0xd93025
MinorSpeedAlertTextColorNightMode 0xd93025
Предупреждение о превышении скоростиФонЦветДневнойРежим 0xd93025
Предупреждение о превышении скоростиФонЦветНочнойРежим 0xd93025
MajorSpeedAlertTextColorDayMode 0xffffff(белый)
MajorSpeedAlertTextColorNightMode 0xffffff(белый)

Вы можете указать цвет текста и фона спидометра как для незначительных, так и для существенных предупреждений о превышении скорости:

Быстрый

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;

Получение информации о скорости от водителей.

Если вашему приложению требуется передавать информацию о скорости водителя, вы также можете использовать Navigation SDK, чтобы сделать эту информацию доступной. Это может быть полезно для приложений, предоставляющих услуги совместных поездок, где оператор может захотеть отслеживать превышение скорости водителями для повышения безопасности.

Например, в следующем примере отображается информация о скорости, когда скорость превышает разрешенную на определенный процент:

Быстрый

// 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 { ... }