As far as I can tell, the
checkAvailability documentation has an updated latest of locales which support ARGeoTracking (at time of writing this, that includes San Francisco Bay Area, Los Angeles, New York, Chicago, and Miami). It was stated in the
Explore ARKit 4 - WWDC 2020 Session that more locales would be added throughout the summer, and presumably, into the future.
From personal experience, I can say that I've had varying success in the locales noted. For example, I've found success outside of Los Angeles, into parts of Orange County, but at other times, failed to have success at random places in Santa Monica. As a whole, I find success in
most parts of Los Angeles County, all of Manhattan, most of Brooklyn, etc.
The easiest approach to determining if ARGeoTracking is supported at a locale is to use the
checkAvailabilityAt method. For example, this is my approach to checking whether ARGeoTracking/localization is supported at a given coordinate (in this case, Times Square in New York City):
Code Block let coordinates = CLLocationCoordinate2D(latitude: 40.75921100, longitude: -73.98463800) |
ARGeoTrackingConfiguration.checkAvailability(at: coordinates) { (available, error) in |
if let err = error { |
print("Error with ARGeoTracking check:", error) |
} |
print("Is ARGeoTracking available here?", available) |
} |
My suggestion would be to gather a list of the coordinates you wish to use within your app, then run the aforementioned check on each coordinates at runtime to determine if such functionality would be supported (this way you will be prepared to handle cases in which the functionality is supported in the future, or gracefully handle if such location is not supported).