Display map or satellite imagery from your app's interface, call out points of interest, and determine placemark information for map coordinates using MapKit.

Posts under MapKit tag

200 Posts

Post

Replies

Boosts

Views

Activity

MapKit & Maps Server API: Cross-Border Search Limitations in Mainland China
Hello, We are developing an application for users located in mainland China who need to plan outbound travel. Users need to search for locations outside mainland China and view rich information provided by Apple Maps services on a map. We have encountered certain limitations in MapKit’s behavior and would like to confirm the boundaries of the public API. Background and observations : Feedback report FB13557287 (originally filed on macOS 14.2) describes the following: when developers use MKLocalSearchCompleter, users in mainland China receive only results within mainland China. Searches for overseas locations such as “New York” or “Berlin” return no results, and using a VPN reportedly does not improve the situation. The developer quoted Apple’s response as “This is expected.” Is this still the expected behavior on the current versions of iOS/iPadOS/macOS 27? If the behavior has changed, what is the correct configuration? On the same device located in mainland China, the Apple Maps app can display overseas map data, and in our tests it can also return overseas locations. The China-region attribution page (https://gspe21-ssl.ls.apple.com/html/attribution-cn2-98.html) lists the data providers for mainland China and states, “Sources for map data outside China can be found here.” This appears to indicate that the Maps app uses a dual-data-source model combining mainland China data with global data. At the same time, we cannot find overseas locations in the “Add Location” feature of Reminders and Journal, which is consistent with the behavior we have observed in the public MapKit APIs. Questions : Can third-party applications obtain the same cross-border data capabilities as the Apple Maps app through public MapKit APIs? If so, which APIs, configurations, or entitlements are required? If not, is this an intentional design decision? Could this be explicitly documented in the MapKit documentation? Does the Maps app select its data source based on the map viewport or individual requests, while MapKit selects a single data source based on the device’s region? If so, do the public APIs allow an application to specify a data source per request? If public MapKit APIs cannot support this scenario, what architecture does Apple recommend as best practice? Are the same regional restrictions applicable to the Apple Maps Server API? Specifically, when /v1/search is called from a backend or account operating within mainland China’s network environment, can overseas results be returned when limitToCountries or searchRegion is configured? Does /v1/directions support cross-border routing? We are not asking about private APIs or seeking ways to bypass regional restrictions. Our goal is to understand the supported boundaries of the public APIs so that we can make appropriate product-design decisions. Thank you.
1
0
286
4d
addSubview slows down with sibling count, process-wide, once a MapKit location view has been in a window
Filed as FB25405148 with a small sample project. Posting here in case anyone else has hit this or knows a better workaround. Once a MapKit location view has been in a window, addSubview: anywhere in the process takes time proportional to the number of subviews the parent already has. The parent doesn't have to belong to the map. On iPhone Air with iOS 27.2, in a clean app, adding 8,000 plain UIViews to a plain UIView took 85 ms without a location view and 4,992 ms with one. You won't see this with a few hundred views. Up to about 1,000 siblings, the whole batch costs less than 100 ms extra. Map apps can hit it because annotation views are siblings under one container. On the same phone, adding 5,000 annotation views in batches took the longest frame from 25 ms to 208 ms. It happens with the default location view, with an MKUserLocationView returned from mapView(_:viewFor:), and with a bare MKUserLocationView added to a window by hand. A plain MKAnnotationView doesn't cause it. From LLDB on the simulator, it looks like MapKit's first call to _accessibilitySetInterfaceStyleIntent: installs _UIAccessibilityInterfaceStyleVisitor, and that's what slows later adds. Returning a plain MKAnnotationView for MKUserLocation avoids it, but gives up the system view. Only iOS 27.2 has been tested so far. Has anyone seen this on other versions, or found a way to keep the system location view without the cost?
0
0
55
1w
MKMapSnapshotter in personal PDF photo albums — clarification of permitted use and appropriate Apple contact
Hello, I am developing Partance, a native iOS/iPadOS application for planning trips and keeping a personal travel journal. The application already generates PDF souvenir albums containing the user’s photographs, captions and journal entries. Before adding static maps, I would like to identify official Apple guidance covering the intended use. Proposed feature The user would explicitly choose to include: one overview map showing the locations represented in their album; smaller maps accompanying individual journal entries. The maps would be generated using MKMapSnapshotter, with markers added by the application. The marker coordinates come from the user’s photographs already stored in their journal, rather than from saved Apple geocoding or search results. This would not be an offline-navigation feature, a downloadable map collection, a map database or a substitute mapping service. Personal use of the resulting PDF Each participant in a trip has their own personal journal and generates their own album. The resulting PDF: is intended as a personal souvenir, not for sale, publication or public distribution; may be retained indefinitely in Partance until the user explicitly deletes it; may also be saved in Files or transferred to the user’s own computer; may be printed at home or uploaded to a commercial photo-book printing service solely to manufacture the user’s personal physical album. Intermediate map images could be deleted after PDF generation. However, the map images embedded in the PDF would remain part of the user’s album. Documentation and uncertainty Apple’s archived “Location and Maps Programming Guide,” under “Creating a Snapshot of a Map,” explicitly describes using MKMapSnapshotter to implement printing: https://developer.apple.com/library/archive/documentation/UserExperience/Conceptual/LocationAwarenessPG/MapKit/MapKit.html However, Attachment 6 of the Apple Developer Program License Agreement, particularly sections 2.1, 2.3 and 2.5, leaves me uncertain about retaining the generated images permanently inside a personal PDF: https://developer.apple.com/support/terms/apple-developer-program-license-agreement/ My questions are: Is there official Apple guidance confirming whether this specific use is permitted, including indefinite retention of the personal PDF? Is there a documented distinction between retaining map data as an application cache and retaining a snapshot within a user-generated document? What attribution, logos or legal notices must accompany the maps in the PDF and printed album, including any requirements relating to Apple’s data providers? Does using a commercial printing service solely to produce the user’s personal photo book require any additional permission? If these questions cannot be answered here, which Apple team or contact channel should handle them? I have already submitted a request through Apple’s Rights and Permissions form and received an automatic acknowledgement only. The map-export feature has not been implemented. I am seeking an official documentation reference or the appropriate Apple contact, rather than asking other developers to provide a legal opinion. Thank you for your help.
0
0
52
1w
Feature Request - MapKit JS: Add "above roads or labels" OverlayLevel to TileOverlay
The MapKit Framework for Swift lets a developer control where a raster/tile overlay is drawn relative to other map content using MKOverlayLevel (.aboveRoads | .aboveLabels) passed to MKMapView.addOverlay(). MapKit JS has no equivalent. There is no level parameter to say "draw this above roads" or "draw this above labels." Please add an overlay-level option to MapKit JS 1️⃣ MapKit JS with TileOverlay Opacity=1 An opacity slider is implemented to help the map viewer to orient themselves with the MapKit JS Hybrid style with a sample raster TileOverlay. 2️⃣ MapKit JS with opacity via slider 3️⃣ MapKit for Swift demonstrates the options for above roads or labels
1
0
269
Oct ’26
Opening Hours for Map Routing
I'm looking to access Apple Maps place metadata, particularly opening hours to route a user between 3 points. Suppose point C opens in the morning and B in the evening, I'd make sure to route the user based on which place is open at the time, eg A => C => B I understand from this thread that opening hours is not something app integrations can export. I was also checking out the batch endpoint. While its not necessary to export the data or display it inline, I'm looking for ways that my app can consume or consider this when routing between multiple places.
0
0
206
Oct ’26
Can MKDirections route geometry drive a custom guidance view without an MKMapView?
I'm building a cycling navigation app. Route calculation uses MDirections with transportType = „cycling (ioS 26). During navigation I want to render guidance on a custom, high-contrast Canvas view designed for glanceability on a handlebar-mounted phone: the route polyline drawn as a simple ribbon, plus turn instructions derived from the route steps. There is a standard Map/MKMapView elsewhere in the app for route preview and selection. The Program License Agreement (Attachment 6) says Map Data may be displayed "only on an Apple map provided through the Apple Maps Service". My questions: Does rendering the MKRoute polyline in my own view, without an underlying Apple map, comply with the Mapkit terms? Does it matter that an Apple map view is used for the preview screen, just not during turn-by-turn guidance? If drawing the polyline itself is not permitted, is displaying only derived guidance (my map-matched position, distance to next turn, instruction text/arrow from MKRoute.Step) permitted without an Apple map? I'd like to know the compliant design before building. Thank you.
0
0
303
Sep ’26
Disable showing bikesharing POI pins in Maps
We have a micromobility / scooter sharing app. Apple apparently introduced some sort of new feature some bikesharing apps' vehicles are shown in Maps. Similar to car rental services or public transports, we now see those bikes inside our app. Which we don't like. Because they are our competitor company. We tried disabling .carRental, .parking, .publicTransport etc options for mapView's pointOfInterestFilter option. None of them worked. We had to do .excludeAll and provided a version to our client to test with this. I just don't understand how this ridesharing app information comes and how it is shown in our app. But we need to find a solution to this. This feature doesn't make any sense to our company.
1
0
637
Aug ’26
Optimizing MapKit performance for high-frequency dynamic annotations / large datasets in Swift
Hi everyone, I am currently working on a SwiftUI / Swift client project that visualizes live, distributed infrastructure nodes across a dynamic map interface using MapKit. As the dataset scales and coordinates update dynamically, I want to ensure rendering performance stays smooth and memory overhead remains low. I would appreciate some guidance from the community on best practices for this scenario: Clustering vs. Custom Overlays: For frequently updating data points, is native annotation clustering (MKClusterAnnotation / clusteringIdentifier) the standard recommendation, or does heavy clustering introduce recalculation overhead during rapid state changes? Visible Region Filtering: What is the recommended pattern in modern MapKit (SwiftUI Map vs. MKMapViewRepresentable) for culling off-screen data points vs. letting MapKit handle view recycling? High-Frequency Updates: When coordinates or statuses update frequently (e.g., via polling or streaming data), what are the best practices to avoid unnecessary view rebuilds and maintain 60/120 FPS panning and zooming? Any architectural tips, performance benchmarks, or WWDC sessions you recommend reviewing for large-scale dynamic rendering would be greatly appreciated! Thanks in advance.
0
0
573
Aug ’26
MKDirections returns "Directions Not Available" when A and B are outside mainland China (e.g. Tokyo–Osaka)
I use MapKit and MKDirections for driving directions. The error "Directions Not Available" appears when the two points (A and B) are outside mainland China (e.g. Tokyo → Osaka). For routes inside China (e.g. Shanghai → Beijing), the same code works. let req = MKDirections.Request() req.source = MKMapItem(placemark: MKPlacemark(coordinate: origin)) req.destination = MKMapItem(placemark: MKPlacemark(coordinate: destination)) req.transportType = .automobile MKDirections(request: req).calculate { response, error in // Tokyo–Osaka (outside China): "Directions Not Available" // Shanghai–Beijing (inside China): works } Questions: Is MKDirections intended to support only routes within the device’s region (e.g. China)? When A/B are abroad, is "Directions Not Available" expected? Is this documented? For cross-country or overseas routes (e.g. Tokyo–Osaka), what is the recommended approach—third-party routing API + drawing on MapKit? Thanks.
1
1
724
Aug ’26
Apple Maps Server API: Documentation and current Developer Portal authentication workflow
Hi everyone, I'm integrating Apple Maps Server API into the backend of a production iOS application (Java / Spring Boot). Before posting, I reviewed the following Apple documentation: Apple Maps Server API Creating and using tokens with Maps Server API Integrating the Apple Maps Server API into Java Server Applications Try Maps Server API I also verified the current Developer Portal behavior and inspected the network requests made by the Try Maps Server API page. What I verified Using the current Apple Developer Portal: Certificates, Identifiers & Profiles → Services → Maps → Configure Tokens I can successfully create a Server API token. I verified the following behavior: A Server API token can be created successfully. The token only supports the None restriction type. The token expires after 7 days. The Try Maps Server API page first calls GET /v1/token using the Server API token. The /v1/token endpoint returns a short-lived Maps access token. That Maps access token is then used to call Apple Maps Server API endpoints such as /v1/place, /v1/search, and /v1/reverseGeocode. Documentation vs. Developer Portal The current Apple Maps Server API documentation describes a production authentication flow in which developers: Create a Maps Identifier Create a Maps Private Key (.p8) Generate a signed authentication JWT Exchange that JWT for a Maps access token via GET /v1/token Use the Maps access token to call Apple Maps Server API However, in my current Apple Developer account: There is no Maps IDs section under Certificates, Identifiers & Profiles → Identifiers. There is no Maps or Apple Maps Server API key available under Certificates, Identifiers & Profiles → Keys. My account information: Apple Developer Program: Active Account Type: Individual Role: Account Holder Based on these observations, I'm not sure how the authentication flow described in the documentation relates to the authentication flow currently supported by the Developer Portal. Questions What is the currently recommended production authentication flow for Apple Maps Server API? Is the Server API token created from Certificates, Identifiers & Profiles → Services → Maps → Configure Tokens intended only for development and testing, or is it also the recommended authentication mechanism for long-running production backend services? If the production authentication flow described in the documentation is still the recommended approach, how can developers create a Maps Identifier and Maps Private Key using the current Developer Portal? Any clarification from Apple or from developers who have recently deployed Apple Maps Server API in production would be greatly appreciated. Thank you!
0
0
640
Aug ’26
Place Card API - SwiftUI
Hello everyone, I have a question regarding the Place Card API I'm using .mapFeatureSelectionAccessory(.automatic) to get information about a POI on the Map The trouble I have is that it forces me to use Apple Maps for directions, which isn't ideal for my use case For example, I support commercial navigation, including large units such as trucks, and I have my own routing engine for this Is there a way to handle the directions via my routing engine instead? Is there a modifier I'm missing, or should I suggest this as an enhancement? Thanks, great work MapKit team
2
0
847
Aug ’26
MapKit/VectorKit Crash – NSMallocException During Map Rendering
Dear Apple Developer Support Team, We are experiencing a crash in our iOS application that appears to originate within Apple's MapKit/VectorKit framework. Based on the crash logs, the failure occurs during map rendering operations inside VectorKit. The crash stack contains only Apple framework calls and does not include any application business logic methods. Crash Summary: Exception Type: NSMallocException Framework: MapKit / VectorKit Crash Location: VectorKit map rendering pipeline Observed Behavior: Application crashes while rendering map-related data Our analysis indicates that the crash occurs within Apple's native map rendering engine. Since the stack trace does not contain any application-specific code, we are unable to determine whether the issue is caused by framework behavior, an OS/device-specific condition, or a framework-level defect. We would appreciate your assistance in reviewing this issue and advising whether there are any known MapKit/VectorKit issues related to this crash signature. We can provide additional crash logs, device details, and reproduction information if required. Thank you for your support. Kind Regards, Yogesh Raj Ushyaku Software Solutions LLP
1
2
1k
Aug ’26
How to use the Map Server API over the long term?
我想使用苹果地图Api,我需要地图长期令牌或密钥 1.如果创建地图令牌仅7天到期(p1),我需要一个长寿命令牌。 2.如果像p2那样创建地图金鑰,則沒有MapKit 3.如果创建地图密钥需要首先创建一个标识符,如p3和p4,没有地图ID 那么,从长远来看,我到底应该如何有效地使用Map Server API呢? p1 : linkText p2: linkText p3: linkText p4: linkText
0
0
691
Jul ’26
SwiftUI Map Marker monogram replaces its title when Map is embedded in a List
SwiftUI Marker monogram replaces title inside List Marker(_:monogram:coordinate:) renders incorrectly when the Map is embedded in a List. Expected: LDN inside the marker pin London below the pin Actual inside List: LDN appears in the title position London is missing The pin has no monogram Screenshots With List — incorrect rendering Without List — expected rendering With List import SwiftUI import MapKit struct MapListView: View { let position = CLLocationCoordinate2D( latitude: 51.5074, longitude: -0.1278 ) var body: some View { List { Map( initialPosition: .region( MKCoordinateRegion( center: position, span: .init( latitudeDelta: 0.2, longitudeDelta: 0.2 ) ) ) ) { Marker( "London", monogram: Text("LDN"), coordinate: position ) } .frame(height: 260) } } } Without List struct MapView: View { let position = CLLocationCoordinate2D( latitude: 51.5074, longitude: -0.1278 ) var body: some View { Map( initialPosition: .region( MKCoordinateRegion( center: position, span: .init( latitudeDelta: 0.2, longitudeDelta: 0.2 ) ) ) ) { Marker( "London", monogram: Text("LDN"), coordinate: position ) } .frame(height: 260) } } The marker renders correctly when the Map is not inside a List. Is this a known SwiftUI or MapKit bug?
0
0
169
Jul ’26
Full Keyboard Access support for custom MKAnnotationView in MKMapView
We’re working on improving the accessibility of a MKMapView that displays custom MKAnnotationView instances. Our implementation is fully accessible with VoiceOver: The custom annotation views expose the correct accessibility information. Users can navigate between annotations using custom accessibility rotors. The overall VoiceOver experience works as expected. However, we’re unable to make the custom MKAnnotationView instances accessible through Full Keyboard Access (FKA). Despite configuring the annotation views as accessibility elements and experimenting with focus-related APIs, the annotations never become reachable through keyboard navigation. They appear to be skipped entirely by the FKA focus system. Is there a supported way to make custom MKAnnotationView instances participate in Full Keyboard Access navigation? If this scenario is currently unsupported, is there a recommended approach or any plans to expose public APIs that would allow developers to provide a keyboard-accessible experience for custom annotations in MKMapView? Any guidance would be greatly appreciated.
4
0
1.3k
Jul ’26
MapKit & Maps Server API: Cross-Border Search Limitations in Mainland China
Hello, We are developing an application for users located in mainland China who need to plan outbound travel. Users need to search for locations outside mainland China and view rich information provided by Apple Maps services on a map. We have encountered certain limitations in MapKit’s behavior and would like to confirm the boundaries of the public API. Background and observations : Feedback report FB13557287 (originally filed on macOS 14.2) describes the following: when developers use MKLocalSearchCompleter, users in mainland China receive only results within mainland China. Searches for overseas locations such as “New York” or “Berlin” return no results, and using a VPN reportedly does not improve the situation. The developer quoted Apple’s response as “This is expected.” Is this still the expected behavior on the current versions of iOS/iPadOS/macOS 27? If the behavior has changed, what is the correct configuration? On the same device located in mainland China, the Apple Maps app can display overseas map data, and in our tests it can also return overseas locations. The China-region attribution page (https://gspe21-ssl.ls.apple.com/html/attribution-cn2-98.html) lists the data providers for mainland China and states, “Sources for map data outside China can be found here.” This appears to indicate that the Maps app uses a dual-data-source model combining mainland China data with global data. At the same time, we cannot find overseas locations in the “Add Location” feature of Reminders and Journal, which is consistent with the behavior we have observed in the public MapKit APIs. Questions : Can third-party applications obtain the same cross-border data capabilities as the Apple Maps app through public MapKit APIs? If so, which APIs, configurations, or entitlements are required? If not, is this an intentional design decision? Could this be explicitly documented in the MapKit documentation? Does the Maps app select its data source based on the map viewport or individual requests, while MapKit selects a single data source based on the device’s region? If so, do the public APIs allow an application to specify a data source per request? If public MapKit APIs cannot support this scenario, what architecture does Apple recommend as best practice? Are the same regional restrictions applicable to the Apple Maps Server API? Specifically, when /v1/search is called from a backend or account operating within mainland China’s network environment, can overseas results be returned when limitToCountries or searchRegion is configured? Does /v1/directions support cross-border routing? We are not asking about private APIs or seeking ways to bypass regional restrictions. Our goal is to understand the supported boundaries of the public APIs so that we can make appropriate product-design decisions. Thank you.
Replies
1
Boosts
0
Views
286
Activity
4d
addSubview slows down with sibling count, process-wide, once a MapKit location view has been in a window
Filed as FB25405148 with a small sample project. Posting here in case anyone else has hit this or knows a better workaround. Once a MapKit location view has been in a window, addSubview: anywhere in the process takes time proportional to the number of subviews the parent already has. The parent doesn't have to belong to the map. On iPhone Air with iOS 27.2, in a clean app, adding 8,000 plain UIViews to a plain UIView took 85 ms without a location view and 4,992 ms with one. You won't see this with a few hundred views. Up to about 1,000 siblings, the whole batch costs less than 100 ms extra. Map apps can hit it because annotation views are siblings under one container. On the same phone, adding 5,000 annotation views in batches took the longest frame from 25 ms to 208 ms. It happens with the default location view, with an MKUserLocationView returned from mapView(_:viewFor:), and with a bare MKUserLocationView added to a window by hand. A plain MKAnnotationView doesn't cause it. From LLDB on the simulator, it looks like MapKit's first call to _accessibilitySetInterfaceStyleIntent: installs _UIAccessibilityInterfaceStyleVisitor, and that's what slows later adds. Returning a plain MKAnnotationView for MKUserLocation avoids it, but gives up the system view. Only iOS 27.2 has been tested so far. Has anyone seen this on other versions, or found a way to keep the system location view without the cost?
Replies
0
Boosts
0
Views
55
Activity
1w
MKMapSnapshotter in personal PDF photo albums — clarification of permitted use and appropriate Apple contact
Hello, I am developing Partance, a native iOS/iPadOS application for planning trips and keeping a personal travel journal. The application already generates PDF souvenir albums containing the user’s photographs, captions and journal entries. Before adding static maps, I would like to identify official Apple guidance covering the intended use. Proposed feature The user would explicitly choose to include: one overview map showing the locations represented in their album; smaller maps accompanying individual journal entries. The maps would be generated using MKMapSnapshotter, with markers added by the application. The marker coordinates come from the user’s photographs already stored in their journal, rather than from saved Apple geocoding or search results. This would not be an offline-navigation feature, a downloadable map collection, a map database or a substitute mapping service. Personal use of the resulting PDF Each participant in a trip has their own personal journal and generates their own album. The resulting PDF: is intended as a personal souvenir, not for sale, publication or public distribution; may be retained indefinitely in Partance until the user explicitly deletes it; may also be saved in Files or transferred to the user’s own computer; may be printed at home or uploaded to a commercial photo-book printing service solely to manufacture the user’s personal physical album. Intermediate map images could be deleted after PDF generation. However, the map images embedded in the PDF would remain part of the user’s album. Documentation and uncertainty Apple’s archived “Location and Maps Programming Guide,” under “Creating a Snapshot of a Map,” explicitly describes using MKMapSnapshotter to implement printing: https://developer.apple.com/library/archive/documentation/UserExperience/Conceptual/LocationAwarenessPG/MapKit/MapKit.html However, Attachment 6 of the Apple Developer Program License Agreement, particularly sections 2.1, 2.3 and 2.5, leaves me uncertain about retaining the generated images permanently inside a personal PDF: https://developer.apple.com/support/terms/apple-developer-program-license-agreement/ My questions are: Is there official Apple guidance confirming whether this specific use is permitted, including indefinite retention of the personal PDF? Is there a documented distinction between retaining map data as an application cache and retaining a snapshot within a user-generated document? What attribution, logos or legal notices must accompany the maps in the PDF and printed album, including any requirements relating to Apple’s data providers? Does using a commercial printing service solely to produce the user’s personal photo book require any additional permission? If these questions cannot be answered here, which Apple team or contact channel should handle them? I have already submitted a request through Apple’s Rights and Permissions form and received an automatic acknowledgement only. The map-export feature has not been implemented. I am seeking an official documentation reference or the appropriate Apple contact, rather than asking other developers to provide a legal opinion. Thank you for your help.
Replies
0
Boosts
0
Views
52
Activity
1w
Feature Request - MapKit JS: Add "above roads or labels" OverlayLevel to TileOverlay
The MapKit Framework for Swift lets a developer control where a raster/tile overlay is drawn relative to other map content using MKOverlayLevel (.aboveRoads | .aboveLabels) passed to MKMapView.addOverlay(). MapKit JS has no equivalent. There is no level parameter to say "draw this above roads" or "draw this above labels." Please add an overlay-level option to MapKit JS 1️⃣ MapKit JS with TileOverlay Opacity=1 An opacity slider is implemented to help the map viewer to orient themselves with the MapKit JS Hybrid style with a sample raster TileOverlay. 2️⃣ MapKit JS with opacity via slider 3️⃣ MapKit for Swift demonstrates the options for above roads or labels
Replies
1
Boosts
0
Views
269
Activity
Oct ’26
SwiftUI MapKit
MapKit offers showsTraffic: Bool, which is great for displaying live traffic data on the map. However, MapPolyline sits above it, which makes it quite useless. Is this the expected behaviour?
Replies
8
Boosts
0
Views
1.1k
Activity
Oct ’26
Opening Hours for Map Routing
I'm looking to access Apple Maps place metadata, particularly opening hours to route a user between 3 points. Suppose point C opens in the morning and B in the evening, I'd make sure to route the user based on which place is open at the time, eg A => C => B I understand from this thread that opening hours is not something app integrations can export. I was also checking out the batch endpoint. While its not necessary to export the data or display it inline, I'm looking for ways that my app can consume or consider this when routing between multiple places.
Replies
0
Boosts
0
Views
206
Activity
Oct ’26
Offline Maps for App via MapKit
I’m building an iOS app using MapKit that allows users to create and navigate trails. I need offline map functionality, I was wondering if MapKit supports that. If not I was wondering if MapBox is a viable alternative to MapKit though I would prefer using MapKit. Thanks!
Replies
3
Boosts
3
Views
1.3k
Activity
Sep ’26
Can MKDirections route geometry drive a custom guidance view without an MKMapView?
I'm building a cycling navigation app. Route calculation uses MDirections with transportType = „cycling (ioS 26). During navigation I want to render guidance on a custom, high-contrast Canvas view designed for glanceability on a handlebar-mounted phone: the route polyline drawn as a simple ribbon, plus turn instructions derived from the route steps. There is a standard Map/MKMapView elsewhere in the app for route preview and selection. The Program License Agreement (Attachment 6) says Map Data may be displayed "only on an Apple map provided through the Apple Maps Service". My questions: Does rendering the MKRoute polyline in my own view, without an underlying Apple map, comply with the Mapkit terms? Does it matter that an Apple map view is used for the preview screen, just not during turn-by-turn guidance? If drawing the polyline itself is not permitted, is displaying only derived guidance (my map-matched position, distance to next turn, instruction text/arrow from MKRoute.Step) permitted without an Apple map? I'd like to know the compliant design before building. Thank you.
Replies
0
Boosts
0
Views
303
Activity
Sep ’26
Disable showing bikesharing POI pins in Maps
We have a micromobility / scooter sharing app. Apple apparently introduced some sort of new feature some bikesharing apps' vehicles are shown in Maps. Similar to car rental services or public transports, we now see those bikes inside our app. Which we don't like. Because they are our competitor company. We tried disabling .carRental, .parking, .publicTransport etc options for mapView's pointOfInterestFilter option. None of them worked. We had to do .excludeAll and provided a version to our client to test with this. I just don't understand how this ridesharing app information comes and how it is shown in our app. But we need to find a solution to this. This feature doesn't make any sense to our company.
Replies
1
Boosts
0
Views
637
Activity
Aug ’26
Optimizing MapKit performance for high-frequency dynamic annotations / large datasets in Swift
Hi everyone, I am currently working on a SwiftUI / Swift client project that visualizes live, distributed infrastructure nodes across a dynamic map interface using MapKit. As the dataset scales and coordinates update dynamically, I want to ensure rendering performance stays smooth and memory overhead remains low. I would appreciate some guidance from the community on best practices for this scenario: Clustering vs. Custom Overlays: For frequently updating data points, is native annotation clustering (MKClusterAnnotation / clusteringIdentifier) the standard recommendation, or does heavy clustering introduce recalculation overhead during rapid state changes? Visible Region Filtering: What is the recommended pattern in modern MapKit (SwiftUI Map vs. MKMapViewRepresentable) for culling off-screen data points vs. letting MapKit handle view recycling? High-Frequency Updates: When coordinates or statuses update frequently (e.g., via polling or streaming data), what are the best practices to avoid unnecessary view rebuilds and maintain 60/120 FPS panning and zooming? Any architectural tips, performance benchmarks, or WWDC sessions you recommend reviewing for large-scale dynamic rendering would be greatly appreciated! Thanks in advance.
Replies
0
Boosts
0
Views
573
Activity
Aug ’26
MKDirections returns "Directions Not Available" when A and B are outside mainland China (e.g. Tokyo–Osaka)
I use MapKit and MKDirections for driving directions. The error "Directions Not Available" appears when the two points (A and B) are outside mainland China (e.g. Tokyo → Osaka). For routes inside China (e.g. Shanghai → Beijing), the same code works. let req = MKDirections.Request() req.source = MKMapItem(placemark: MKPlacemark(coordinate: origin)) req.destination = MKMapItem(placemark: MKPlacemark(coordinate: destination)) req.transportType = .automobile MKDirections(request: req).calculate { response, error in // Tokyo–Osaka (outside China): "Directions Not Available" // Shanghai–Beijing (inside China): works } Questions: Is MKDirections intended to support only routes within the device’s region (e.g. China)? When A/B are abroad, is "Directions Not Available" expected? Is this documented? For cross-country or overseas routes (e.g. Tokyo–Osaka), what is the recommended approach—third-party routing API + drawing on MapKit? Thanks.
Replies
1
Boosts
1
Views
724
Activity
Aug ’26
Apple Maps Server API: Documentation and current Developer Portal authentication workflow
Hi everyone, I'm integrating Apple Maps Server API into the backend of a production iOS application (Java / Spring Boot). Before posting, I reviewed the following Apple documentation: Apple Maps Server API Creating and using tokens with Maps Server API Integrating the Apple Maps Server API into Java Server Applications Try Maps Server API I also verified the current Developer Portal behavior and inspected the network requests made by the Try Maps Server API page. What I verified Using the current Apple Developer Portal: Certificates, Identifiers & Profiles → Services → Maps → Configure Tokens I can successfully create a Server API token. I verified the following behavior: A Server API token can be created successfully. The token only supports the None restriction type. The token expires after 7 days. The Try Maps Server API page first calls GET /v1/token using the Server API token. The /v1/token endpoint returns a short-lived Maps access token. That Maps access token is then used to call Apple Maps Server API endpoints such as /v1/place, /v1/search, and /v1/reverseGeocode. Documentation vs. Developer Portal The current Apple Maps Server API documentation describes a production authentication flow in which developers: Create a Maps Identifier Create a Maps Private Key (.p8) Generate a signed authentication JWT Exchange that JWT for a Maps access token via GET /v1/token Use the Maps access token to call Apple Maps Server API However, in my current Apple Developer account: There is no Maps IDs section under Certificates, Identifiers & Profiles → Identifiers. There is no Maps or Apple Maps Server API key available under Certificates, Identifiers & Profiles → Keys. My account information: Apple Developer Program: Active Account Type: Individual Role: Account Holder Based on these observations, I'm not sure how the authentication flow described in the documentation relates to the authentication flow currently supported by the Developer Portal. Questions What is the currently recommended production authentication flow for Apple Maps Server API? Is the Server API token created from Certificates, Identifiers & Profiles → Services → Maps → Configure Tokens intended only for development and testing, or is it also the recommended authentication mechanism for long-running production backend services? If the production authentication flow described in the documentation is still the recommended approach, how can developers create a Maps Identifier and Maps Private Key using the current Developer Portal? Any clarification from Apple or from developers who have recently deployed Apple Maps Server API in production would be greatly appreciated. Thank you!
Replies
0
Boosts
0
Views
640
Activity
Aug ’26
Place Card API - SwiftUI
Hello everyone, I have a question regarding the Place Card API I'm using .mapFeatureSelectionAccessory(.automatic) to get information about a POI on the Map The trouble I have is that it forces me to use Apple Maps for directions, which isn't ideal for my use case For example, I support commercial navigation, including large units such as trucks, and I have my own routing engine for this Is there a way to handle the directions via my routing engine instead? Is there a modifier I'm missing, or should I suggest this as an enhancement? Thanks, great work MapKit team
Replies
2
Boosts
0
Views
847
Activity
Aug ’26
MapKit/VectorKit Crash – NSMallocException During Map Rendering
Dear Apple Developer Support Team, We are experiencing a crash in our iOS application that appears to originate within Apple's MapKit/VectorKit framework. Based on the crash logs, the failure occurs during map rendering operations inside VectorKit. The crash stack contains only Apple framework calls and does not include any application business logic methods. Crash Summary: Exception Type: NSMallocException Framework: MapKit / VectorKit Crash Location: VectorKit map rendering pipeline Observed Behavior: Application crashes while rendering map-related data Our analysis indicates that the crash occurs within Apple's native map rendering engine. Since the stack trace does not contain any application-specific code, we are unable to determine whether the issue is caused by framework behavior, an OS/device-specific condition, or a framework-level defect. We would appreciate your assistance in reviewing this issue and advising whether there are any known MapKit/VectorKit issues related to this crash signature. We can provide additional crash logs, device details, and reproduction information if required. Thank you for your support. Kind Regards, Yogesh Raj Ushyaku Software Solutions LLP
Replies
1
Boosts
2
Views
1k
Activity
Aug ’26
How to use the Map Server API over the long term?
我想使用苹果地图Api,我需要地图长期令牌或密钥 1.如果创建地图令牌仅7天到期(p1),我需要一个长寿命令牌。 2.如果像p2那样创建地图金鑰,則沒有MapKit 3.如果创建地图密钥需要首先创建一个标识符,如p3和p4,没有地图ID 那么,从长远来看,我到底应该如何有效地使用Map Server API呢? p1 : linkText p2: linkText p3: linkText p4: linkText
Replies
0
Boosts
0
Views
691
Activity
Jul ’26
SwiftUI Map Marker monogram replaces its title when Map is embedded in a List
SwiftUI Marker monogram replaces title inside List Marker(_:monogram:coordinate:) renders incorrectly when the Map is embedded in a List. Expected: LDN inside the marker pin London below the pin Actual inside List: LDN appears in the title position London is missing The pin has no monogram Screenshots With List — incorrect rendering Without List — expected rendering With List import SwiftUI import MapKit struct MapListView: View { let position = CLLocationCoordinate2D( latitude: 51.5074, longitude: -0.1278 ) var body: some View { List { Map( initialPosition: .region( MKCoordinateRegion( center: position, span: .init( latitudeDelta: 0.2, longitudeDelta: 0.2 ) ) ) ) { Marker( "London", monogram: Text("LDN"), coordinate: position ) } .frame(height: 260) } } } Without List struct MapView: View { let position = CLLocationCoordinate2D( latitude: 51.5074, longitude: -0.1278 ) var body: some View { Map( initialPosition: .region( MKCoordinateRegion( center: position, span: .init( latitudeDelta: 0.2, longitudeDelta: 0.2 ) ) ) ) { Marker( "London", monogram: Text("LDN"), coordinate: position ) } .frame(height: 260) } } The marker renders correctly when the Map is not inside a List. Is this a known SwiftUI or MapKit bug?
Replies
0
Boosts
0
Views
169
Activity
Jul ’26
Full Keyboard Access support for custom MKAnnotationView in MKMapView
We’re working on improving the accessibility of a MKMapView that displays custom MKAnnotationView instances. Our implementation is fully accessible with VoiceOver: The custom annotation views expose the correct accessibility information. Users can navigate between annotations using custom accessibility rotors. The overall VoiceOver experience works as expected. However, we’re unable to make the custom MKAnnotationView instances accessible through Full Keyboard Access (FKA). Despite configuring the annotation views as accessibility elements and experimenting with focus-related APIs, the annotations never become reachable through keyboard navigation. They appear to be skipped entirely by the FKA focus system. Is there a supported way to make custom MKAnnotationView instances participate in Full Keyboard Access navigation? If this scenario is currently unsupported, is there a recommended approach or any plans to expose public APIs that would allow developers to provide a keyboard-accessible experience for custom annotations in MKMapView? Any guidance would be greatly appreciated.
Replies
4
Boosts
0
Views
1.3k
Activity
Jul ’26