I am developing a CarPlay navigation app using only public CarPlay APIs. During active turn-by-turn guidance, the app needs to keep the next planned charging stop visible and interactive so the driver can open it and review the remaining planned stops.
The root template is a CPMapTemplate. The app starts a CPNavigationSession, supplies the current CPManeuver through upcomingManeuvers, and shows a CPMapPanel containing one interactive CPListItem for the next stop.
let mapTemplate = CPMapTemplate()
let session = mapTemplate.startNavigationSession(for: trip)
session.upcomingManeuvers = [currentManeuver]
let stopItem = CPListItem(
text: "1. Charging stop",
detailText: "4/6 available · 320 kW · 13% arrival"
)
stopItem.handler = { _, completion in
// Push a CPMapPanel containing the planned-stop hierarchy.
completion()
}
let panel = CPMapPanel(
title: nil,
sections: [
CPMapPanelSection(
title: nil,
items: [CPMapPanelItem(listItem: stopItem)]
)
],
buttonConfiguration: nil
)
mapTemplate.showPanel(panel, completion: nil)
On a wide CarPlay host, both the system-rendered maneuver/trip-estimate cards and the app's map panel occupy the leading side while a large trailing area remains free. CPMapPanel does not appear to expose a preferred side, layout priority, safe region, or collision policy. Changing the panel content and the navigation-bar buttons has not provided a vehicle-independent solution.
Reproduction:
- Use a navigation-entitled app with a
CPMapTemplateroot. - Start a trip and a native
CPNavigationSession. - Publish a
CPManeuverinupcomingManeuvers. - Show the interactive
CPMapPanelabove. - Observe the system maneuver card, trip-estimate card, map controls, and map panel on a wide CarPlay host.
Environment:
- Xcode 27.1 / iOS 27 SDK
- App build used for the latest vehicle reproduction: 69
- A minimal UIKit/CarPlay/MapKit reproduction project is available and contains no credentials, user data, or third-party SDKs.
Questions:
- Is a persistent interactive
CPMapPanelsupported while aCPNavigationSessiondisplays maneuver guidance? - Is there a documented layout contract that prevents a
CPMapPanelfrom conflicting with system maneuver and trip-estimate cards across hosts? - If panel placement is intentionally host-controlled, which public template or API is intended for a next-charging-stop entry that remains visible and interactive during guidance?
- Is
CPMultiStopCardConfigurationin the ETA tray the intended architecture, even when the next stop should remain visible at a glance? - Are there documented content or update-frequency limits that influence the panel layout?
I do not want to use fixed coordinates, a custom touch overlay, or private APIs. The goal is a supported, driver-safe solution that works across different CarPlay hosts.