【发布时间】:2012-03-13 21:57:44
【问题描述】:
我正在尝试使用 iOS5/iPhone 4G 进行精确的区域监控,但我似乎运气不佳。需要明确的是,我能够让区域进入事件;只是我过早地得到它们。让我解释。这是我设置区域的代码:
#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];
在此代码中,半径设置为 10 米。那么,我的假设是,如果我在该位置的 10 米范围内,我只会收到区域通知。相反,我可以在更高的距离值处获得通知(我已经看到 2 英里的接近触发了该区域)。什么会导致这个?另外,我正在使用显着的LocationChangeMonitoringAvailable 和为CLLocationManager 设置的默认值。也许使用显着LocationChangeMonitoringAvailable 会以某种方式排除更准确的触发事件?
有什么想法吗?
【问题讨论】: