2012-08-27 84 views
0

我得到一個非常愚蠢的問題安卓GPS尖峯問題

lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 0, ll); 
    float spd = myLoc.distanceTo(previousLocation)/(myLoc.getTime() - previousLocation.getTime()); 

以前的位置是myLoc上一次保存onLocationChanged被稱爲I-E每1秒後。

現在我的問題是,有時它會給出非常大的峯值。使spd走得比平時更高。

任何人都可以告訴我怎樣才能減少這種

問候

回答

2

幾個建議:

  1. 檢查Location.hasSpeed(),查看是否爲您提供了這一信息。它可能比你的計算更可靠,儘管我對用於產生這個值的算法一無所知。

  2. 檢查Location.getAccuracy()決定何時忽略計算速度的特定修復程序。

  3. 請仔細閱讀這些提示,以查看處理GPS結果時如何進行選擇的示例。它們可能太舊或太不精確而無法用於速度。 http://developer.android.com/guide/topics/location/strategies.html#Updates

  4. 對於我工作的應用程序,我實現了一個過濾器,將當前位置與前兩個位置進行比較,並使用最低計算速度。您可能需要一個或多或少複雜的方法來確定對您有用的速度。