2011-10-04 40 views
2

我正在開發一個應用程序,旨在計算從起點到終點的距離。 我已經做了所有事情來獲得不斷變化的座標並測量這個座標之間的距離。 現在真正的問題是,即使在幾秒鐘後我的iPhone保持靜止,GPS讀數顯示偏差,並且CLLocationDistance告訴我我移動了幾百米但我還沒有移動一點。 有什麼我可以做的提高我的應用程序的精度?iPhone GPS精度 - 讀取更改eventhough設備是固定的

在此先感謝。

回答

2

iPhone上的GPS可以保護電池。第一組座標將是手機的最後一個已知座標。 取決於你希望的精度,它會嘗試並獲得更好的修復,首先將使用無線或手機信號塔的三角測量。

經過一段時間後,GPS信號通過,並給你一個更精確的位置,iOS將只停止更新,如果你告訴它或者是否符合所需的精度。

你可以做的是檢查收到的位置的準確性,看看它是否符合你的標準。 沒有辦法只是得到最應計的固定賴特,這只是需要一些時間。

1

在您的應用程序中無法提高GPS的精度,但您可以提高結果的準確性。

首先,嘗試玩CLLocationManger的distanceFilter。

/* 
* distanceFilter 
* 
* Discussion: 
*  Specifies the minimum update distance in meters. Client will not be notified of movements of less 
*  than the stated value, unless the accuracy has improved. Pass in kCLDistanceFilterNone to be 
*  notified of all movements. By default, kCLDistanceFilterNone is used. 
*/ 
@property(assign, nonatomic) CLLocationDistance distanceFilter; 

而且所需的精度

/* 
* desiredAccuracy 
* 
* Discussion: 
*  The desired location accuracy. The location service will try its best to achieve 
*  your desired accuracy. However, it is not guaranteed. To optimize 
*  power performance, be sure to specify an appropriate accuracy for your usage scenario (eg, 
*  use a large accuracy value when only a coarse location is needed). Use kCLLocationAccuracyBest to 
*  achieve the best possible accuracy. Use kCLLocationAccuracyBestForNavigation for navigation. 
*  By default, kCLLocationAccuracyBest is used. 
*/ 
@property(assign, nonatomic) CLLocationAccuracy desiredAccuracy; 

而在去年,你應該檢索到的位置更新的精確度被打。根據其準確性丟棄無效的位置更新數量是擺脫那些不太有效的位置的好方法。但也要注意,獲得真正的GPS精確信號需要一些時間。

+0

謝謝..這改善了結果.. –