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

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

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

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