我在主要活動如下代碼:定位精度仍然很低使用GPS
LocationManager mlocMan = (LocationManager)getActivity().getSystemService(Context.LOCATION_SERVICE);
if (mlocMan.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
LocationListener mlocListener = new LocationManagerHelper(...);
mlocMan.requestLocationUpdates(LocationManager.GPS_PROVIDER,0,0,mlocListener);
}
在位置監聽器我有這樣的:(theAccuracy被初始化爲-1)
if (theAccuracy == -1 || theAccuracy > loc.getAccuracy()) {
theAccuracy = Math.round(loc.getAccuracy());
latitude = loc.getLatitude();
longitude = loc.getLongitude();
}
updateTimes++;
if (updateTimes == 3) {
mLocMan.removeUpdates(this);
updateTimes = 0;
//get address for location
theAccuracy = -1;
}
意義,在GPS從GPS位置更新3次後,請採取最準確的位置並獲取其地址。在模擬器上,我獲得了20米的固定準確度(使用DDMS發送長/緯度),但這不是真實的生活,所以我嘗試着使用我的設備,而第一次(3次請求)給我準確的地址(當場)準確度爲40米,接下來的有時更準確,但地址在附近。我得到的最佳準確度是29米(發生一次),大部分時間都在30以上。這是我的GPS(LG G3)的問題,還是有其他想法可以在3-4-5請求後使事情更加準確?
1.模擬器着,當然,不是真實的生活 2.所以minTime PARAM你建議我應該把1而不是0?當你說熱身時,你的意思是從打開GPS或從我的第一次請求開始? 3.谷歌播放服務不正常,因爲定期的請求,但重量更多,沒有明顯的好處。我不需要不斷的位置請求,所以它不適合我的需求。 4.我站在我家附近的窗戶,具有諷刺意味的是,第一次嘗試給了我完美的結果,接下來的......很不完美。 – Amos 2014-11-08 12:22:02
1.通過預熱我的意思是垃圾郵件的一些gps請求,從第一次請求的時間不是基準。我無法告訴你靠近窗戶是好還是不好。 GPS被計算爲兩顆衛星之間的三角洲,如果一顆衛星穿過你的窗戶有一條清晰的線條,而另一顆穿過了牆壁,則可能比穿過牆壁更差。 3.谷歌客戶端從重複請求中收斂非常明顯。無論是因爲熱身還是內部收斂算法,我都不知道。 – NameSpace 2014-11-08 12:30:13
我會嘗試在戶外檢查它。同時,你是否建議我要求超過3個要求?你推薦我設置什麼minTime? – Amos 2014-11-08 12:44:12