我正在写一个应用程序,它存储了你一整天都在的地方的位置。我已经在CLLocationManager上做了大量的研究,并且在过去的三周里一直在测试我的应用程序。我使用CLLocationManager获得的位置有时是非常不准确的,有时候距离我4到5英里远。 我有一个日志在我的测试应用程序,并意识到,每次我得到一个新的位置时,我的DidUpdateToLocation方法被连续调用3次,就像在一秒钟内,我得到3个不同的位置。其中一个永远是对的,但另外两个是关闭的。我用不同的精度(百米,距离最近的十米和最好)对它进行了测试,但仍然有同样的问题。所以,我的第一个问题是:从mapView中检索当前用户的位置,没有地图在屏幕上
是否有无论如何我可以找出哪些位置是正确的,所以我可以存储它?
我也意识到,用户在地图视图上的当前位置总是非常准确,所以我想从mapView(蓝点)而不是CLLocationManager获取用户的位置,但我知道一个mapView对象将只返回当前位置,如果地图实际上在屏幕上,并且不是这种情况,因为我希望我的应用程序在后台运行。所以第二个问题是:
无论如何从mapView中获取用户的当前位置而不显示地图吗?或者至少使用mapView用于查找当前位置的相同技术?
如果您有任何有关mapKit和CLLocationManager的经验,请分享您的想法。
感谢您的时间。任何帮助表示赞赏。
迦勒,感谢您的提示!横向准确性实际上是有用的。我认为CLLocation经理不会返回比我在locationManager.desiredAccuracy中设置的准确度更低的位置,但事实上确实如此!一旦我滤除了所有比我想要的准确度更不准确的位置,我只能找回那些好的! – 2012-03-10 01:57:05
我相信这是另一种方式...... CLLocationManager不会退出,它会返回比您想要的准确度更精确的位置。提供更准确的修复通常意味着使用更多功率。如果它确切地知道你在哪里,它会告诉你,但是如果你不需要一个比从最近的蜂窝塔或wifi热点获得的更精确的修正,它可能不会启动GPS接收机。 – Caleb 2012-03-10 02:40:17