2016-03-02 54 views
0

我所試圖做的
位置在android系統是不相符的

  • 使用Service,這樣只要應用程序運行Location可以檢索
在指定的時間間隔獲取用戶位置

問題,我面對

  • 即使我在相同的位置很長一段時間,每次日ËLatitudeLongitude變化與不同Accuracy水平
  • 由於這個原因,即使用戶沒有改變他的位置,如果我在GoogleMap繪製Location它由地方讓跳轉到非常接近成爲我的縮放級別18.0f
  • mGoogleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(currentLatLon, 18.0f));

我已經試過的方法在stackoverflow Link Onestackoverflow Link Two

提及,但即使我坐在同一個位置,並在固定時間間隔獲取位置時,緯度和經度不同,這樣,看到突出顯示的值在每一個緯度經度結束:

緯度:12.8379 長:經度:77.6647

緯度:12.8379 長:經度:77.6647

緯度:12.8379 長:經度:77.6647

緯度:12.8379 長:經度:77.6647

但仍然每次Accuracy不同,緯度經度稍稍改變時間試驗。

由於我的代碼試用與鏈接中提到的完全相同,我不僅僅是在這裏複製粘貼。如何解決此問題

回答

3

GPS的準確性並不是絕對的,所以即使是靜態設備也會在連續讀數中顯示不同位置。請嘗試以下操作:

  1. 您可以添加,可檢測手機是否爲靜態的方法,通過閱讀他的加速度計 - 如果兩個讀數之間的增量超過某個閾值大 - 設備在移動。如果它太小 - 它不會移動。要確定增量 - 將設備放在桌子上,看看你得到了什麼值。
  2. 忽略近距離讀數 - 以高精度(< 20m或您確定的其他數值)進行第一次讀數並將其用作參考 - 如果下一次讀數給出非常小的距離,接近參考值(< 10m或其他值), 忽略它。如果它更大 - 將其設置爲新參考。
0

嘗試設置Accuracy_HIGH並設置時間限制和距離限制。
嘗試使用谷歌地點融合的API的位置相關的工作。 請參考這裏: - http://coderzpassion.com/android-location-using-google-play-services/

+1

我試過的最後一個鏈接是使用相同的。無論如何感謝您的建議.. https://github.com/nickfox/GpsTracker/blob/master/phoneClients/android/app/src/main/java/com/websmithing/gpstracker/LocationService.java – Stallion

+0

@Stallion歡迎:)它每1秒請求位置並且沒有距離限制 –

+0

我試過這些,locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,10,10,mLocListener);和locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,10,10,mLocListener);還有,我仍然得到相同的結果 – Stallion