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

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

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

アラートをトリガーするしきい値と、スピードメーターに表示されるテキストと背景色の両方をカスタマイズできます。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 { ... }