2012-03-30 64 views
2

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

我知道你可以根据用户当前位置注册某些区域,因为os会限制手机/应用程序一次可以监视的区域数量,并且您应该只在区域内注册区域靠近用户当前位置......但是可以基于用户位置即时创建一个区域(以前未定义)?

使用情况实例:

用户应用旋转起来coreLocation得到一个组坐标准确的,一旦我们有准确COORDS,corelocation关闭以节省电池。当用户离开该区域时需要发生事件,以便我们想知道用户何时移动x个距离单位。可以在此用户当前位置周围创建x个距离单位的区域,因此我们可以开始监控退出区域吗?

我把大量的研究,但无法找到答案......不幸的是,我不是很熟悉regionMonitoring。

谢谢:)

回答

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和4s的默认提醒应用程序(基于位置的提醒)的结果,我也不高兴。

+1

我在iOS7中做同样的事情。但是,现在我坚持一个新问题。我认为我们可以监控的区域数量最多的是15个。现在我的问题是,如果我想用用户当前的位置监控区域,并且一个接一个的数量达到15,那么我该如何处理这种情况。或者我不必担心区域的数量,因为我总是根据用户当前的位置监视区域,这是一个区域。如果您有任何解决方案,请与我分享。先谢谢了。祝你今天愉快。 – Tulon 2014-02-18 09:50:29

+1

如果您检查文档,最大限制为20.请确保您保持半径小于maximumRegionMonitoringDistance。现在我的理解是,如果你超过这个数字,iOS将会释放对最早区域的监控。https://developer.apple.com/library/ios/documentation/CoreLocation/Reference/CLLocationManager_Class/CLLocationManager/CLLocationManager.html#// apple_ref/occ/instm/CLLocationManager/startMonitoringForRegion: – Zee 2014-02-18 11:59:13

+0

是的,我当然是。但那不是我的问题。如果你可以请看看我的这个问题 http://stackoverflow.com/questions/21850536/number-of-region-monitored-by-regionmonitoring-based-on-users-current-locatio 谢谢 – Tulon 2014-02-18 12:01:54