Displaying current speed and speed limits

Hello!

Our navigation app has the CarPlay Navigation entitlement and uses CPMapTemplate.

We want to display a compact current speed indicator and speed limit sign directly on the map, alongside the standard maneuver and ETA templates.

The CarPlay Developer Guide says the base view must exclusively draw a map and must not contain custom UI overlays. However, Waze and Google Maps for example both show these indicators and Mapbox’s public CarPlay implementation adds a custom SpeedLimitView to its map view controller.

Are these speed indicators permitted as part of the map presentation? If so, what implementation and placement requirements apply if any?

Answered by DTS Engineer in 911480022

Thanks for the post.

The restriction, as I read it, in the CarPlay Developer Guide stating that the base view must exclusively draw a map and must not contain custom UI overlays is primarily aimed at interactive UI elements. Because CarPlay is in the car for driving buttons, menus, search bars, or any controls that require user interaction on the map view is a driving distraction. Displaying a current speed indicator and a speed limit sign directly on the map is ok, and it is a standard practice for navigation apps on CarPlay. Because speed limit signs and current speed indicators are purely informational and non-interactive.

Just ensure they are purely visual, non-interactive, and strictly constrained to the safeAreaLayoutGuide.

Albert  WWDR

I wouldn’t take Waze or Google Maps as confirmation that a custom speed badge is allowed. Apple’s current CarPlay navigation sample says the root map view should contain only the map, and that overlays should use CarPlay-provided templates. That makes a custom SpeedLimitView drawn over the map look outside the documented pattern, even if other apps appear to do it.

There is a system CPMapPanel for navigation-related information, but Apple’s docs don’t specifically say that current speed or speed limits belong in it. I’d check whether the information can be presented through a supported CarPlay template, and ask CarPlay Developer Support to confirm the proposed placement before shipping. Keep it informational and noninteractive so it doesn’t compete with maneuvers or the road view.

Apple’s navigation sample: https://developer.apple.com/documentation/carplay/integrating-carplay-with-your-navigation-app
CPMapPanel: https://developer.apple.com/documentation/carplay/cpmappanel

Accepted Answer

Thanks for the post.

The restriction, as I read it, in the CarPlay Developer Guide stating that the base view must exclusively draw a map and must not contain custom UI overlays is primarily aimed at interactive UI elements. Because CarPlay is in the car for driving buttons, menus, search bars, or any controls that require user interaction on the map view is a driving distraction. Displaying a current speed indicator and a speed limit sign directly on the map is ok, and it is a standard practice for navigation apps on CarPlay. Because speed limit signs and current speed indicators are purely informational and non-interactive.

Just ensure they are purely visual, non-interactive, and strictly constrained to the safeAreaLayoutGuide.

Albert  WWDR