2015-04-26 27 views
2

Apple的documentation指出,僅建議在導航應用程序中使用kCLLocationAccuracyBestForNavigation,並且僅在插入電源時使用kCLLocationAccuracyBestForNavigation對非導航使用kCLLocationAccuracyBestForNavigation

我正在開發一個應用程序,它只需要定期定位,甚至每個應用程序負載可能只有一次,以查找用戶的位置以顯示它們附近的一些可供選擇的位置。所以我不經常需要它,但是當我需要它時,它需要非常準確(並且顯然儘可能快)。我的願望是儘可能快地達到10米精度(或更好)。

如果我使用kCLLocationAccuracyBestForNavigation

  1. 這將會對電池的任何有意義的影響用於(以秒爲單位)的短時間時?或者蘋果公司的保守指引是針對長時間使用這一準確度水平的人?

  2. 也許更重要的是,當位置管理器第一次啓動時,這個準確度是否會導致更長的等待時間?即在報告合理準確的位置之前等待時間?

  3. 是否有任何有關kCLLocationAccuracyBestForNavigationkCLLocationAccuracyBest之間的技術差異的文檔?即究竟發生了什麼事讓前者更準確?

回答

3
  1. 我真的很懷疑。做這個實驗。假設它對電池壽命有重大影響。如果短時間內運行GPS,使用最佳準確度的應用程序在很短的時間內不會殺死您的手機,這會對電池造成嚴重影響嗎?它不能,除非最好的精度GPS有一個重大的啓動電池耗盡,然後使用較少的電力。我懷疑它是這樣做的,但現在做這個實驗。使用全速GPS運行您的應用程序並監控您的電池使用情況。運行一個受控的實驗,重新啓動,甚至可能是乾淨的手機。觀察電池電量如何隨着時間的推移而降低。我的猜測是,它是線性的,具有更高的準確性。

  2. 我之前使用過一種混合方法,使用kCLLocationAccuracyKilometer進行初始粗略位置確定。當它出現時,我更改爲kCLLocationAccuracyBestForNavigation以改進位置。這樣可以讓您得到快速響應,通常在0.5秒內獲得較低的精度,然後您可以稍後幾秒鐘(通常在我的測試中大約3次)獲得更好的讀數。

  3. 我不知道蘋果在做什麼,但是我從尋寶中獲得的經驗可能會有所幫助。隨着時間的推移,良好的手持式GPS將平均讀數。所以你可以從50英尺的精度開始,然後如果你靜止不動並收集更多的讀數,那麼他們的平均值就是平均值。這可以減少您的統計錯誤。