【发布时间】:2011-06-05 21:01:32
【问题描述】:
所以我正在处理 iPhone GPS 的一些准确性问题。我有一个使用位置的应用程序。
在委托方法locationManager: didUpdateToLocation: fromLocation: 中,我正在返回一个位置。从一些研究来看,即使将desiredAccuracy 属性设置为kCLLocationAccuracyBest,GPS 在返回的第一个结果上似乎也不总是准确的。
为了解决这个问题,我不会在 stopUpdatingLocation 返回至少 3 次之前调用 stopUpdatingLocation(这非常快)。我还玩弄了其他两个“要求”,即是否要 stopUpdatingLocation 并返回 newLocation。我尝试的一种方法是检查newLocation 的经纬度并与oldLocation 进行比较,如果它们不相同,则保持位置更新运行。我还尝试检查oldLocation 和newLocation 之间的距离,如果它小于20 米,那很好。这两个都经过至少 3 次运行的返回测试。后一种方式不太“严格”,因为如果用户在移动的车辆中,newLocation 和 oldLocation 很难做到 100% 相同。
现在,我的问题是,即使执行上述操作(基本上不接受位置,直到 CLLocationManager 发生一些更新并检查 CLLocations 之间的距离(或它们是否相同)我是在测试时,有时仍然会看到位置有些奇怪的结果。
如果我离开应用程序,进入 Maps.app,使用 GPS,然后打开多任务处理,强制退出我的应用程序,然后重新打开它以获得干净的启动,有时会得到修复。
人们有什么经验和可能的解决方案来解决同类问题?评论和解决方案表示赞赏:)
【问题讨论】:
标签: ios cllocationmanager cllocation