配置速度计提醒
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
启用导航功能并将出行模式设置为驾车时,Navigation SDK for iOS 会在地图的左下角显示一个限速控件,其中会显示当前的限速。如果司机超速,控件会展开,在限速显示旁边显示速度计,并在速度达到一定阈值时触发提醒。
默认情况下,当驾驶员超速 5 英里/小时(或 10 公里/小时)时,导航 SDK 会触发轻微超速提醒,并将车速表文字颜色更改为红色。当驾驶员超速 10 英里/小时(或 20 公里/小时)时,系统会触发严重超速提醒,并将车速表背景颜色更改为红色。
您可以自定义触发提醒的阈值,以及速度表显示的文字和背景颜色。您还可以使用 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 { ... }
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-08-31。
[null,null,["最后更新时间 (UTC):2025-08-31。"],[[["\u003cp\u003eWhen navigation is in driving mode, the Navigation SDK displays the current speed limit and driver's speed, providing visual and configurable speed alerts.\u003c/p\u003e\n"],["\u003cp\u003eDevelopers can customize the thresholds for minor and major speed alerts, including the percentage over the speed limit and duration before triggering.\u003c/p\u003e\n"],["\u003cp\u003eThe speedometer's text and background colors can be customized for day and night modes, allowing for clear visual distinction of speed alert levels.\u003c/p\u003e\n"],["\u003cp\u003eThe Navigation SDK enables access to the driver's speed information, which can be used for purposes like monitoring driver behavior in rideshare applications.\u003c/p\u003e\n"]]],["The Navigation SDK for iOS displays a speed limit and speedometer when driving. Speed alerts are triggered when the driver exceeds the limit. Minor alerts occur at 5 mph (or 10 kph) over, turning the text red. Major alerts occur at 10 mph (or 20 kph) over, turning the background red. Alert thresholds and colors are customizable, including percentages over the limit and time before the alert. The SDK also provides driver speed data for monitoring purposes, such as in rideshare apps.\n"],null,["# Configure speedometer alerts\n\nWhen navigation is enabled and the travel mode is set to driving, the Navigation\nSDK for iOS displays a speed limit control in the lower left corner of the map\nthat shows the current speed limit. If a driver exceeds the speed limit, the\ncontrol expands to display a speedometer next to the speed limit display and\ntriggers alerts when the speed reaches a certain threshold.\n\nBy default, the Navigation SDK triggers a minor speed alert when the driver\nexceeds the speed limit by 5 mph (or 10 kph), and changes the color of the\nspeedometer text to red. It triggers a major speed alert when the driver exceeds\nthe speed limit by 10 mph (or 20 kph), and changes the speedometer background\ncolor to red. \n\nYou can customize both the threshold for triggering the alerts and the text and\nbackground colors the speedometer displays. You can also use the Navigation SDK\nto make the driver's speed information available. For example, you could make\nspeed information available to rideshare operators to help them encourage their\ndrivers to adhere to the speed limit and improve safety.\n\nCustomizing thresholds for speed alerts\n---------------------------------------\n\nYou can customize the speed alert threshold for both minor and major speed\nalerts as a percentage over the speed limit of the current speed. You can also\nspecify how long the threshold is exceeded before the map displays the alert.\n\nThe following code example sets the threshold for a minor speed alert to five\npercent over the speed limit, and the threshold for a major speed alert to 10\npercent over the speed limit. It specifies that the map displays an alert after\nan alert threshold has been exceeded for five seconds.\n\n\u003cbr /\u003e\n\n### Swift\n\n\u003cbr /\u003e\n\n let minorSpeedAlertThresholdPercentage: CGFloat = 0.05 let\n majorSpeedAlertThresholdPercentage: CGFloat = 0.1 let\n severityUpgradeDurationSeconds: TimeInterval = 5\n\n // Configure SpeedAlertOptions let mutableSpeedAlertOptions:\n GMSNavigationMutableSpeedAlertOptions = GMSNavigationMutableSpeedAlertOptions()\n mutableSpeedAlertOptions.setSpeedAlertThresholdPercentage(minorSpeedAlertThresholdPercentage,\n for: .minor)\n mutableSpeedAlertOptions.setSpeedAlertThresholdPercentage(majorSpeedAlertThresholdPercentage,\n for: .major) mutableSpeedAlertOptions.severityUpgradeDurationSeconds =\n severityUpgradeDurationSeconds\n\n // Set SpeedAlertOptions to Navigator. mapView.navigator?.speedAlertOptions =\n mutableSpeedAlertOptions; mapView.navigator?.add(self); // Only needed if\n listening to the delegate events.\n\n\u003cbr /\u003e\n\n### Objective-C\n\n\u003cbr /\u003e\n\n static const CGFloat minorSpeedAlertThresholdPercentage = 0.05; static const\n CGFloat majorSpeedAlertThresholdPercentage = 0.1; static const NSTimeInterval\n severityUpgradeDurationSeconds = 5;\n\n // Configure SpeedAlertOptions GMSNavigationMutableSpeedAlertOptions\n *mutableSpeedAlertOptions = [[GMSNavigationMutableSpeedAlertOptions alloc]\n init]; [mutableSpeedAlertOptions setSpeedAlertThresholdPercentage:\n minorSpeedAlertThresholdPercentage\n forSpeedAlertSeverity:GMSNavigationSpeedAlertSeverityMinor];\n [mutableSpeedAlertOptions\n setSpeedAlertThresholdPercentage:majorSpeedAlertThresholdPercentage\n forSpeedAlertSeverity:GMSNavigationSpeedAlertSeverityMajor];\n [mutableSpeedAlertOptions\n setSeverityUpgradeDurationSeconds:severityUpgradeDurationSeconds];\n\n // Set SpeedAlertOptions to Navigator. mapView.navigator.speedAlertOptions =\n mutableSpeedAlertOptions; [mapView.navigator addListener:self]; // Only needed\n if listening to the delegate events.\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\nCustomizing how the speedometer displays speed alerts\n-----------------------------------------------------\n\nYou can customize the colors of the speedometer display for each alert level.\n\nThe following table shows the default colors for speed alerts in the\n`GMSNavigationSpeedometerUIOptions` class:\n\n| Element | Color |\n|-----------------------------------------|-----------------|\n| MinorSpeedAlertBackgroundColorDayMode | 0xffffff(white) |\n| MinorSpeedAlertBackgroundColorNightMode | 0x000000 |\n| MinorSpeedAlertTextColorDayMode | 0xd93025 |\n| MinorSpeedAlertTextColorNightMode | 0xd93025 |\n| MajorSpeedAlertBackgroundColorDayMode | 0xd93025 |\n| MajorSpeedAlertBackgroundColorNightMode | 0xd93025 |\n| MajorSpeedAlertTextColorDayMode | 0xffffff(white) |\n| MajorSpeedAlertTextColorNightMode | 0xffffff(white) |\n\nYou can specify the text and background color of the speedometer for both minor\nand major speed alerts:\n\n\u003cbr /\u003e\n\n### Swift\n\n\u003cbr /\u003e\n\n let mutableSpeedometerUIOptions: GMSNavigationMutableSpeedometerUIOptions =\n GMSNavigationMutableSpeedometerUIOptions()\n mutableSpeedometerUIOptions.setTextColor(minorSpeedAlertTextColor, for: .minor,\n lightingMode: .normal)\n mutableSpeedometerUIOptions.setTextColor(majorSpeedAlertTextColor, for: .major,\n lightingMode: .normal)\n mutableSpeedometerUIOptions.setBackgroundColor(minorSpeedAlertNightModeBackgroundColor,\n for: .minor, lightingMode: .lowLight)\n mutableSpeedometerUIOptions.setBackgroundColor(majorSpeedAlertDayModeBackgroundColor,\n for: .major, lightingMode: .normal)\n\n mapView.settings.speedometerUIOptions = mutableSpeedometerUIOptions\n\n\u003cbr /\u003e\n\n### Objective-C\n\n\u003cbr /\u003e\n\n GMSNavigationMutableSpeedometerUIOptions *mutableSpeedometerUIOptions =\n [[GMSNavigationMutableSpeedometerUIOptions alloc] init];\n [mutableSpeedometerUIOptions setTextColor: minorSpeedAlertTextColor\n forSpeedAlertSeverity: GMSNavigationSpeedAlertSeverityMinor lightingMode:\n GMSNavigationLightingModeNormal]; [mutableSpeedometerUIOptions setTextColor:\n majorSpeedAlertTextColor forSpeedAlertSeverity:\n GMSNavigationSpeedAlertSeverityMajor lightingMode:\n GMSNavigationLightingModeNormal]; [mutableSpeedometerUIOptions\n setBackgroundColor: minorSpeedAlertNightModeBackgroundColor\n forSpeedAlertSeverity: GMSNavigationSpeedAlertSeverityMinor lightingMode:\n GMSNavigationLightingModeLowLight]; [mutableSpeedometerUIOptions\n setBackgroundColor: majorSpeedAlertDayModeBackgroundColor forSpeedAlertSeverity:\n GMSNavigationSpeedAlertSeverityMajor\n lightingMode:GMSNavigationLightingModeNormal];\n\n mapView.settings.speedometerUIOptions = mutableSpeedometerUIOptions;\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\nReceiving speed information from drivers\n----------------------------------------\n\nIf your application requires sharing information about driver speed, you can\nalso use the Navigation SDK to make the driver's speed information available.\nThis can be useful for rideshare applications in which an operator may want to\nmonitor excessive speeding by drivers to improve safety.\n\nFor example, the following example shares speed information when the speed is a\nspecified percentage over the speed limit:\n\n\u003cbr /\u003e\n\n### Swift\n\n\u003cbr /\u003e\n\n // Listener method for sharing speed information when the speed exceeds the\n speed limit by a specified percentage. #pragma mark GMSNavigatorListener func\n navigator(_ navigator : GMSNavigator, didUpdateSpeedingPercentage\n percentageAboveLimit : Float) { ... }\n\n\u003cbr /\u003e\n\n### Objective-C\n\n\u003cbr /\u003e\n\n // Listener method listening to speeding feed. #pragma mark\n GMSNavigatorListener - (void)navigator:(GMSNavigator *)navigator\n didUpdateSpeedingPercentage:(float)percentageAboveLimit { ... }\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e"]]