スピードメーターのアラートを設定する

ナビゲーションが有効で、移動モードが運転に設定されている場合、Navigation SDK for iOS は、地図の左下隅に現在の速度制限を示す速度制限コントロールを表示します。ドライバーが制限速度を超えると、コントロールが展開して制限速度表示の横にスピードメーターが表示され、速度が特定のしきい値に達するとアラートがトリガーされます。

デフォルトでは、Navigation SDK は、ドライバーが制限速度を時速 5 マイル(または時速 10 km)を超えると、軽度の速度アラートをトリガーし、速度計のテキストの色を赤に変更します。ドライバーが制限速度を時速 10 マイル(または時速 20 km)超えると、重大な速度アラートがトリガーされ、スピードメーターの背景色が赤に変わります。

アラートをトリガーするしきい値と、スピードメーターに表示されるテキストと背景色の両方をカスタマイズできます。Navigation SDK を使用して、ドライバーの速度情報を利用できるようにすることもできます。たとえば、ライドシェア事業者が速度情報を利用できるようにすることで、ドライバーに制限速度の遵守を促し、安全性を向上させることができます。

速度アラートのしきい値をカスタマイズする

軽度と重度の速度アラートの速度アラートしきい値を、現在の速度の制限速度に対する割合としてカスタマイズできます。また、しきい値を超えてからマップにアラートが表示されるまでの時間を指定することもできます。

次のコード例では、軽度の速度超過アラートのしきい値を制限速度の 5% 超過に設定し、重度の速度超過アラートのしきい値を制限速度の 10% 超過に設定しています。アラートのしきい値を超えてから 5 秒後に地図にアラートが表示されるように指定します。

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.

速度計で速度アラートを表示する方法をカスタマイズする

速度計の表示色は、アラートレベルごとにカスタマイズできます。

次の表に、GMSNavigationSpeedometerUIOptions クラスの速度アラートのデフォルトの色を示します。

要素色
MinorSpeedAlertBackgroundColorDayMode 0xffffff(白)
MinorSpeedAlertBackgroundColorNightMode 0x000000
MinorSpeedAlertTextColorDayMode 0xd93025
MinorSpeedAlertTextColorNightMode 0xd93025
MajorSpeedAlertBackgroundColorDayMode 0xd93025
MajorSpeedAlertBackgroundColorNightMode 0xd93025
MajorSpeedAlertTextColorDayMode 0xffffff(白)
MajorSpeedAlertTextColorNightMode 0xffffff(白)

速度超過の警告(軽度と重度)について、速度計のテキストと背景の色を指定できます。

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;

ドライバーから速度情報を受信

アプリでドライバーの速度に関する情報を共有する必要がある場合は、Navigation SDK を使用してドライバーの速度情報を利用できるようにすることもできます。これは、オペレーターが安全性を向上させるためにドライバーの過度な速度超過をモニタリングするライドシェア アプリケーションで役立ちます。

たとえば、次の例では、速度が制限速度を特定の割合で超えた場合に速度情報を共有します。

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