我正在寫一個應用程序,它存儲了你一整天都在的地方的位置。我已經在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