【发布时间】:2012-03-09 03:01:43
【问题描述】:
我正在编写一个应用程序来存储您一整天去过的地方的位置。我对 CLLocationManager 进行了大量研究,并且在过去 3 周内一直在测试我的应用程序。我使用 CLLocationManager 获得的位置有时非常不准确,有时距离我所在的位置 4 或 5 英里。 我在我的测试应用程序中有一个日志,并意识到每次我获得一个新位置时,我的 DidUpdateToLocation 方法都会连续调用 3 次,比如在一秒钟内,我会得到 3 个不同的位置。其中一个总是正确的,但另外两个是关闭的。我已经用不同的精度(hundredMeters、nearestTenMeters 和 Best)对其进行了测试,但仍然遇到同样的问题。所以,我的第一个问题是:
我是否可以找出这些位置中的哪一个是正确的,以便我可以存储它?
我也意识到用户在地图视图上的当前位置总是非常准确,所以我考虑从 mapView(蓝点)而不是 CLLocationManager 获取用户的位置,但我了解到 mapView 对象会如果地图实际上在屏幕上,则仅返回当前位置,但情况并非如此,因为我希望我的应用程序在后台运行。所以第二个问题是:
无论如何,如果地图不在屏幕上,是否可以从 mapView 获取用户的当前位置?或者至少使用 mapView 用于查找当前位置的相同技术?
如果您对 mapKit 和 CLLocationManager 有任何经验,请分享您的想法。
感谢您的宝贵时间。任何帮助表示赞赏。
【问题讨论】:
标签: iphone objective-c ios cllocationmanager