I am trying to get precise region monitoring working with iOS5/iPhone 4G and I don't seem to be having much luck. To be clear, I AM able to get region enter events; it's just that I am getting them prematurely. Let me explain. This is my code for setting up a region:
#define GEO_FENCING_RADIUS 10 // in meters
CLLocationDistance radius = GEO_FENCING_RADIUS;
// Create the region and start monitoring it.
CLRegion* region = [[CLRegion alloc] initCircularRegionWithCenter:coordinate
radius:radius
identifier:identifier];
[self.locationManager startMonitoringForRegion:region
desiredAccuracy:kCLLocationAccuracyBest];
radius, in this code, is set to 10 meters. My assumption, then, is that I will only receive a region notification if I am within 10 meters of this location. Instead, I can get the notification at much higher distance values (I've seen a 2 mile proximity triggering the region). What would cause this? Also, I am using significantLocationChangeMonitoringAvailable with the defaults values set for CLLocationManager. Maybe using significantLocationChangeMonitoringAvailable is somehow precluding more accurate trigger events?
Any ideas what's happening here?