CoreLocation:一次只监控某些区域
Posted
技术标签:
【中文标题】CoreLocation:一次只监控某些区域【英文标题】:CoreLocation: monitor only certain regions at a time 【发布时间】:2010-07-19 16:22:48 【问题描述】:在我的 iPhone 应用程序中,我想监控用户是否一次进入某些特定的地理区域并采取相应的行动。 我现在看到,使用新的 ios 4 可以将一些兴趣区域(CLRegion)注册到 CLLocationManager,所以它会为我做一些工作,但是......我还需要动态更改区域集(因此有时只向用户发出某个区域的信号)但似乎只能添加区域。 在注意到 iOS 4 中的这种变化之前,我计划使用 R-Tree 来索引所有区域(作为 2d 空间中的矩形)并按需查询它,显然我自己添加/删除节点。 以下是我的问题: - 任何人都知道 CLLocationManager 是否使用类似于 R-Tree 的东西? - 它非常有效吗? (我可以在某个时候将我的所有区域都注册为注册并应用过滤器,例如查看当时可用场景的 NSSet) - 我想至少删除CL中所有被监控的区域,可行吗?怎么样?
【问题讨论】:
您是否成功实施了区域监控,一次只监控某些区域,即时停止并注册它们?您一次监控多少个区域?我正在为类似的任务工作一个多星期,但仍在苦苦挣扎。我也在使用重大变化监控,但是当应用程序在后台运行时,我得到的位置结果非常不准确(horizontalAccuracy 可能高达 8.5 公里)。 我有大约 400 个地方需要监控。没有关于受监控区域的最大数量的信息,但我发现 10 个区域是可以的。我面临的另一个问题是需要进行一些“繁重”的计算,以便循环遍历所有地方,找到并注册最近的 10 个,以及跟踪和标记访问时间。因此,我不确定当应用程序处于后台并接收 didEnterRegion/didExitRegion/didUpdateToLocation 回调时,我有多少时间进行这些计算。我怀疑有限制。你也遇到过这些问题吗? 【参考方案1】:-[CLLocationManager stopMonitoringForRegion:]
有什么问题?
【讨论】:
我觉得自己像个白痴:D ty 我完全错过了这一点(也许我被即使在应用程序启动之间仍然存在区域这一事实误导了)。尽管如此,还是谢谢你。你知道这个框架的性能吗?以上是关于CoreLocation:一次只监控某些区域的主要内容,如果未能解决你的问题,请参考以下文章