2013-05-10 92 views
2

我有一個服務,運行在後臺,觀察位置變化,然後我在地圖上繪製「路線」。位置管理器說,當它沒有位置改變

問題是,當我看着地圖上的路線時,它顯示了我停在一段時間(幾分鐘)的位置,我的位置在該位置附近跳動,而不是靜止的,所以路線看起來很糟糕。

有沒有辦法阻止這個,讓我有一個很好的連續路徑?

我試圖改變位置更新之間的最小距離,但似乎並沒有做任何事情

locationManager = (LocationManager) this.getSystemService(LOCATION_SERVICE); 

    Criteria criteria = new Criteria(); 
    criteria.setAccuracy(Criteria.ACCURACY_FINE); 

    String provider = locationManager.getBestProvider(criteria, true); 

    if(provider == null){ 
     provider = LocationManager.NETWORK_PROVIDER; 
    } 
    locationManager.requestLocationUpdates(provider,25000,50, this); 
+0

有關更多選項,請參閱我的答案更新如何定義設備是否真正移動。我希望我可以幫助:) – Naskov 2013-05-10 19:32:36

+0

你是否找到了另一種解決方案?這不適合我。請參閱我對答案的評論。 – 2014-07-17 13:46:28

回答

2

問題不在於你的代碼,但它與衛星和GPS的精度的。它不能告訴你確切的位置。所以你需要做出類似的事情(如果位置改變在5米以下,不要通知我)。

更新

您也可以使用location.getSpeed();來獲得設備與這樣你就可以定義移動速度,如果位置發生改變,是否可靠。如果衛星有一個小故障或GPS準確度,該設備可能會以3480834公里/小時或類似的方式移動。

+0

我正在使用網絡提供商。並設置onLocationChanged:if(loc!= null && loc.getSpeed()!= 0.0)。最小的移動距離是1米,我移動設備以提高速度。但位置不顯示我的祝酒! – 2014-07-17 13:45:28