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

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

デフォルトでは、Navigation SDK は、運転者が制限速度を 5 mph(または 10 km/h)超過すると、速度超過の警告をトリガーし、速度計のテキストの色を赤色に変更します。ドライバーが制限速度を時速 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 { ... }