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
horizontalAccuracy
and the default value forradius
? - Does the
horizontalAccuracy
for theCLLocation
object introduce a radius from the coordinate, or is it purely giving information about the uncertainty of the location?
Cheers