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 Kneadlocated 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 - A coordinate-based POI search using
Expected Behavior:
Given the precise coordinates and Apple Maps showing the POI publicly, I expect either or both of the following:
MKLocalSearchshould return the POI (Rustic Knead) within a reasonable radius and appropriate.pointOfInterestFilter.CLGeocodershould return aCLPlacemarkwith eithername = "Rustic Knead"or anareasOfInterestvalue containing it.
Actual Behavior:
MKLocalSearchreturns 0 POIs at that location, even with filters removed and radius increased to 500+ meters.CLGeocoder.reverseGeocodeLocationreturns a valid postal address but does not include the business name in.nameorareasOfInterest.- 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?