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