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
- 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:
MKLocalSearch
should return the POI (Rustic Knead) within a reasonable radius and appropriate.pointOfInterestFilter
.CLGeocoder
should return aCLPlacemark
with eithername = "Rustic Knead"
or anareasOfInterest
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
orareasOfInterest
.- 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?