我的iPhone GPS存在一些准确性问题。我有一个应用程序使用了地理位置信息。
在委托方法locationManager:didUpdateToLocation:fromLocation:
中,我会得到一个位置。通过一些研究,我发现即使将desiredAccuracy
属性设置为kCLLocationAccuracyBest
,GPS返回的第一个结果并不总是准确的。
为了解决这个问题,在它返回至少3次newLocation
之前,我不会调用stopUpdatingLocation
(这很快)。我还尝试使用其他两种“要求”来判断是否停止更新位置信息并返回newLocation
。其中一种方法是检查newLocation
的纬度和经度,与oldLocation
进行比较,如果它们不相同,则继续运行位置更新。另一种方法是检查oldLocation
和newLocation
之间的距离,如果小于20米,则可以接受。这两种方法都测试了至少3次运行。后一种方法较为宽松,因为如果用户在移动车辆中,newLocation
和oldLocation
很难完全相同。
现在,我的问题是,即使采取了以上措施(基本上不接受位置,直到CLLocationManager
发生几次更新并检查CLLocations
之间的距离(或它们是否相同),我仍然有时候看到一些奇怪的位置结果。
如果我离开应用程序,进入Maps.app使用GPS,然后打开多任务处理,强制退出我的应用程序,然后重新启动它进行干净的启动,这有时会解决问题。
有没有类似问题的经验和可能的解决方案?欢迎留下评论和解决方案:)