iOS 5区域监控:可以根据用户核心位置的当前坐标创建新区域吗?

时间:2012-03-30 16:32:05

标签: objective-c ios4 ios5 geolocation core-location

我的问题是关于在iOS 5中为regionMonitoring创建区域。是否可以根据应用当前位置的用户创建新区域?或者应用程序二进制文件中的开发人员是否需要预定义所有区域?

我知道您可以根据用户当前位置注册某些区域,因为操作系统会限制手机/应用程序一次可以监控的区域数量,您应该只注册关闭区域接近用户当前位置...但是可以根据用户位置动态创建一个区域(以前未定义)吗?

用例示例:

用户应用程序旋转coreLocation以获得准确的坐标集,一旦我们有准确的坐标,就会关闭以重置以节省电池。当用户离开该区域时需要发生事件,因此我们想知道用户何时移动x个距离单位。是否可以在该用户当前位置周围创建x个距离单位,以便我们可以开始监视已退出的区域?

我进行了大量的研究,但找不到答案......不幸的是,我对regionMonitoring并不是很熟悉。

谢谢:)

1 个答案:

答案 0 :(得分:2)

理论上,您可以随时监控任何区域,不需要预先定义这些区域,您可以使用以下代码以实际方式创建和监控您所需的区域,

CLLocationCoordinate2D center = CLLocationCoordinate2DMake(location.coordinate.latitude, location.coordinate.longitude);
CLRegion *region = [[CLRegion alloc] initCircularRegionWithCenter:center radius:50.0f identifier:identifier];
[self.locationManager startMonitoringForRegion:region desiredAccuracy:kCLLocationAccuracyBest];

PS:区域监控实施没有苹果广告那么有用,据我所知,它依赖于电池更换事件(再次节省电池)。即使iPhone 4和4上的默认提醒应用程序(基于位置的提醒)的结果,我也不满意。