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

67 Posts

Post

Replies

Boosts

Views

Created

📍 Inconsistent POI Visibility Between Apple Maps and MKLocalSearch / CLGeocoder
Summary: Hi! I'm experiencing an issue between what Apple Maps displays in the UI and what is accessible via MapKit APIs such as MKLocalSearch and CLGeocoder. Specifically, some verified and publicly visible businesses (with proper POI categories like .cafe) are not returned by coordinate-based POI searches or reverse geocoding, even when their exact address and coordinates are known. Repro Steps: In Apple Maps (iOS), search for Rustic Knead located at: 1130 State St, Lemont, IL 60439 Note that: The business appears visually on the map It is categorized as a cafe The address is 1130 State St Now in code, attempt both: A coordinate-based POI search using MKLocalSearch.Request(region:) A reverse geocoding lookup via CLGeocoder.reverseGeocodeLocation Example coordinates: latitude: 41.673604, longitude: -88.002295 Expected Behavior: Given the precise coordinates and Apple Maps showing the POI publicly, I expect either or both of the following: MKLocalSearch should return the POI (Rustic Knead) within a reasonable radius and appropriate .pointOfInterestFilter. CLGeocoder should return a CLPlacemark with either name = "Rustic Knead" or an areasOfInterest value containing it. Actual Behavior: MKLocalSearch returns 0 POIs at that location, even with filters removed and radius increased to 500+ meters. CLGeocoder.reverseGeocodeLocation returns a valid postal address but does not include the business name in .name or areasOfInterest. Searching by business name (e.g., "Rustic Knead") does work, but coordinate/address-only lookups do not. Questions: Are there known limitations in how MapKit surfaces POIs by coordinate or reverse geocode? Is there a way to ensure public, categorized POIs are accessible programmatically via MapKit APIs? Is there a better strategy to provide coordinates and return a business name?
1
0
109
Apr ’25
Specify location for SwiftUI Previews
I'm working on an app that uses MapKit and CoreLocation. Is there a way to specify what location is simulated for a Preview, or create a preview that behaves as if the user denied location permissions, so that I can easily test my app's behavior in different scenarios? I know that you can simulate different locations in the Simulator, but haven't been able to get the previews within Xcode to have a location other than the center of Apple Park.
0
1
146
Apr ’25
Issue with calculating the distance between two points on a map
I have an error issue that I haven’t been able to solve despite doing extensive research. In fact the similar examples I have found so far have been educational but I have not been able to make work. The example below I am hoping will be easy to fix as it is only producing errors with one line of code… import SwiftUI import CoreLocation var currentLon = Double() var currentLat = Double() extension CLLocation { class func distance(from: CLLocationCoordinate2D, to: CLLocationCoordinate2D) -> CLLocationDistance { let from = CLLocation(latitude: from.latitude, longitude: from.longitude) let to = CLLocation(latitude: to.latitude, longitude: to.longitude) return from.distance(from: to) } func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { currentLon = (locations.last?.coordinate.longitude)! currentLat = (locations.last?.coordinate.latitude)! }/*⚠️ Not sure if this function will work? (Update User Location coordinates on the move?)*/ } struct Positions: Identifiable { let id = UUID() let name: String let latitude: Double let longitude: Double var coordinate: CLLocationCoordinate2D { CLLocationCoordinate2D(latitude: latitude, longitude: longitude) } } struct GameMapView: View { let from = CLLocationCoordinate2D(latitude: currentLon, longitude: currentLat) let to = CLLocationCoordinate2D(latitude: thisCardPositionLongitude, longitude: thisCardPositionLongitude) let distanceFrom = from.distance(from: to) /*⚠️ ERRORS: 1. Cannot use instance member 'from' within property initializer; property initializers run before 'self' is available. 2. Cannot use instance member 'to' within property initializer; property initializers run before 'self' is available. 3. Value of type 'CLLocationCoordinate2D' has no member 'distance'. */ @State private var region = MKCoordinateRegion( center: CLLocationCoordinate2D( latitude: thisCardPositionLatitude, longitude: thisCardPositionLongitude), span: MKCoordinateSpan( latitudeDelta: 0.0001, longitudeDelta: 0.0001) ) var body: some View { Map(coordinateRegion: $region, showsUserLocation: true, annotationItems: locations){ place in MapMarker(coordinate: place.coordinate,tint: Color.accentColor) } .edgesIgnoringSafeArea(.all) VStack { Print("Distance from Location: \(distanceFrom)") font(.largeTitle) padding() }
1
0
164
Apr ’25
GPS Track Navigation with MapKit?
I want to create a MKRoute from a list of MKMapPoints or coordinates. But apparently MKRoute can only be generated from a MKDirections request from Apple's servers. The primary use of my app will be activities (eg hiking) in the back country where (1) a network connection likely won't be available and (2) there likely will not be a trail in Apple's map network. For example I want to provide navigation for following a recorded GPS track or my only MKPolyLines. Note that I am required to use MapKit (3rd party map SDKs are not an option for a number of reasons). It feels like a huge missed opportunity if MapKit doesn't allow Routes to be created from a predetermined list of coordinates. Does anyone know of any solutions for this problem either somehow creating a MKRoute from a list of coordinates or a 3rd party library? I've searched but haven't had any luck finding a solution. It seems like something like this must exist so I thought I'd ask.
Topic: UI Frameworks SubTopic: UIKit Tags:
2
0
83
Apr ’25
Quick Look Extension does not load MapKit map properly anymore, after macOS Sequoia
It appears that starting with macOS Sequoia, Quick Look Preview extension no longer loads MapKit maps correctly anymore. Map tiles do not appear, leaving users with a beige background. Users report that polylines do render correctly, but annotations appears black. This was previously working fine in prior macOS versions including Sonoma. STEPS TO REPRODUCE Create a macOS app project, with an associated document. Ensure project has a Quick Look preview extension, with necessary basic setups. Ensure that the extension mentioned in (2) must have a MKMapView. Any other cosmetic changes, etc, does not need to be implemented to observe the base issue. Do note that it has been reported that in addition to the map tiles not loading, annotations don't render correctly as well.
5
2
1k
Oct ’24
📍 Inconsistent POI Visibility Between Apple Maps and MKLocalSearch / CLGeocoder
Summary: Hi! I'm experiencing an issue between what Apple Maps displays in the UI and what is accessible via MapKit APIs such as MKLocalSearch and CLGeocoder. Specifically, some verified and publicly visible businesses (with proper POI categories like .cafe) are not returned by coordinate-based POI searches or reverse geocoding, even when their exact address and coordinates are known. Repro Steps: In Apple Maps (iOS), search for Rustic Knead located at: 1130 State St, Lemont, IL 60439 Note that: The business appears visually on the map It is categorized as a cafe The address is 1130 State St Now in code, attempt both: A coordinate-based POI search using MKLocalSearch.Request(region:) A reverse geocoding lookup via CLGeocoder.reverseGeocodeLocation Example coordinates: latitude: 41.673604, longitude: -88.002295 Expected Behavior: Given the precise coordinates and Apple Maps showing the POI publicly, I expect either or both of the following: MKLocalSearch should return the POI (Rustic Knead) within a reasonable radius and appropriate .pointOfInterestFilter. CLGeocoder should return a CLPlacemark with either name = "Rustic Knead" or an areasOfInterest value containing it. Actual Behavior: MKLocalSearch returns 0 POIs at that location, even with filters removed and radius increased to 500+ meters. CLGeocoder.reverseGeocodeLocation returns a valid postal address but does not include the business name in .name or areasOfInterest. Searching by business name (e.g., "Rustic Knead") does work, but coordinate/address-only lookups do not. Questions: Are there known limitations in how MapKit surfaces POIs by coordinate or reverse geocode? Is there a way to ensure public, categorized POIs are accessible programmatically via MapKit APIs? Is there a better strategy to provide coordinates and return a business name?
Replies
1
Boosts
0
Views
109
Activity
Apr ’25
Specify location for SwiftUI Previews
I'm working on an app that uses MapKit and CoreLocation. Is there a way to specify what location is simulated for a Preview, or create a preview that behaves as if the user denied location permissions, so that I can easily test my app's behavior in different scenarios? I know that you can simulate different locations in the Simulator, but haven't been able to get the previews within Xcode to have a location other than the center of Apple Park.
Replies
0
Boosts
1
Views
146
Activity
Apr ’25
Issue with calculating the distance between two points on a map
I have an error issue that I haven’t been able to solve despite doing extensive research. In fact the similar examples I have found so far have been educational but I have not been able to make work. The example below I am hoping will be easy to fix as it is only producing errors with one line of code… import SwiftUI import CoreLocation var currentLon = Double() var currentLat = Double() extension CLLocation { class func distance(from: CLLocationCoordinate2D, to: CLLocationCoordinate2D) -> CLLocationDistance { let from = CLLocation(latitude: from.latitude, longitude: from.longitude) let to = CLLocation(latitude: to.latitude, longitude: to.longitude) return from.distance(from: to) } func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { currentLon = (locations.last?.coordinate.longitude)! currentLat = (locations.last?.coordinate.latitude)! }/*⚠️ Not sure if this function will work? (Update User Location coordinates on the move?)*/ } struct Positions: Identifiable { let id = UUID() let name: String let latitude: Double let longitude: Double var coordinate: CLLocationCoordinate2D { CLLocationCoordinate2D(latitude: latitude, longitude: longitude) } } struct GameMapView: View { let from = CLLocationCoordinate2D(latitude: currentLon, longitude: currentLat) let to = CLLocationCoordinate2D(latitude: thisCardPositionLongitude, longitude: thisCardPositionLongitude) let distanceFrom = from.distance(from: to) /*⚠️ ERRORS: 1. Cannot use instance member 'from' within property initializer; property initializers run before 'self' is available. 2. Cannot use instance member 'to' within property initializer; property initializers run before 'self' is available. 3. Value of type 'CLLocationCoordinate2D' has no member 'distance'. */ @State private var region = MKCoordinateRegion( center: CLLocationCoordinate2D( latitude: thisCardPositionLatitude, longitude: thisCardPositionLongitude), span: MKCoordinateSpan( latitudeDelta: 0.0001, longitudeDelta: 0.0001) ) var body: some View { Map(coordinateRegion: $region, showsUserLocation: true, annotationItems: locations){ place in MapMarker(coordinate: place.coordinate,tint: Color.accentColor) } .edgesIgnoringSafeArea(.all) VStack { Print("Distance from Location: \(distanceFrom)") font(.largeTitle) padding() }
Replies
1
Boosts
0
Views
164
Activity
Apr ’25
GPS Track Navigation with MapKit?
I want to create a MKRoute from a list of MKMapPoints or coordinates. But apparently MKRoute can only be generated from a MKDirections request from Apple's servers. The primary use of my app will be activities (eg hiking) in the back country where (1) a network connection likely won't be available and (2) there likely will not be a trail in Apple's map network. For example I want to provide navigation for following a recorded GPS track or my only MKPolyLines. Note that I am required to use MapKit (3rd party map SDKs are not an option for a number of reasons). It feels like a huge missed opportunity if MapKit doesn't allow Routes to be created from a predetermined list of coordinates. Does anyone know of any solutions for this problem either somehow creating a MKRoute from a list of coordinates or a 3rd party library? I've searched but haven't had any luck finding a solution. It seems like something like this must exist so I thought I'd ask.
Topic: UI Frameworks SubTopic: UIKit Tags:
Replies
2
Boosts
0
Views
83
Activity
Apr ’25
Quick Look Extension does not load MapKit map properly anymore, after macOS Sequoia
It appears that starting with macOS Sequoia, Quick Look Preview extension no longer loads MapKit maps correctly anymore. Map tiles do not appear, leaving users with a beige background. Users report that polylines do render correctly, but annotations appears black. This was previously working fine in prior macOS versions including Sonoma. STEPS TO REPRODUCE Create a macOS app project, with an associated document. Ensure project has a Quick Look preview extension, with necessary basic setups. Ensure that the extension mentioned in (2) must have a MKMapView. Any other cosmetic changes, etc, does not need to be implemented to observe the base issue. Do note that it has been reported that in addition to the map tiles not loading, annotations don't render correctly as well.
Replies
5
Boosts
2
Views
1k
Activity
Oct ’24
<unlocalized> in mapview
This question has been asked several times by other users before. But there is no solution provided it seems. So I am asking the same here. I have a screen where I add mapview as a subview. In that it is showing instead of "Legal".
Replies
1
Boosts
1
Views
554
Activity
Dec ’23
Advanced App Clip experience URL Status
Hello Team, We have Advanced App Clip Experiences live but we have add App Clip experience URL since long ago but status remains as Received and never changed to Published, can you please help us to fix this issue. Please see attached. Thanks
Replies
6
Boosts
0
Views
1.6k
Activity
May ’23