I'm creating a location-based reminder, EKReminder.
For the coordinates I'm using CLGeocoder to convert an address into a CLLocation.
When it comes to the reminder itself, I think that there are two factors involved that determine the 'area' (radius/circle) in which the reminder will fire.
1) the Horizontal accuracy of the CLLocation.
The docs describe the horizontalAccuracy property as "The radius of uncertainty for the location, measured in meters. (read-only)".
There's more good information about this in a previous question: What do horizontalAccuracy and verticalAccuracy of a CLLocation refer to?
As suggested in that answer, the horizontalAccuracy is 100m.
2) the radius property on the EKStructuredLocation. The discussion notes for this property read "To use the default radius, set this property to 0."
If I create a location-based reminder in the stock, Reminders app from Apple, it comes out with radius = 0 and horizontalAccuracy = 0. So it's using the default 'reminder radius' (don't know what that is) with a value of 0 for the uncertainty in the horizontal location...
I want to avoid having two margins in my reminder. I think there are two options to achieve this:
a) use the default radius for the EKStructuredLocation by setting it to 0 and change the result coming back from the CLGeocoder to have a horizontalAccuracy of 0m.
b) keep the horizontalAccuracy (100m, or different, depending on circumstance) from the CLGeocoder - but not use the default radius for the EKStructuredLocation and set it to something small, like 1m.
Thoughts? Am I understanding these APIs correctly?
- Will I get a 'double margin' if I use the returned
horizontalAccuracyand the default value forradius? - Does the
horizontalAccuracyfor theCLLocationobject introduce a radius from the coordinate, or is it purely giving information about the uncertainty of the location?
Cheers