2013-05-30 61 views
1

我正在開發GPS位置校正算法。Android LocationManager正在過濾GPS位置?

我註冊onLocationChanged(位置位置)偵聽器以獲取當前gps位置發生變化時。

MINIMUM_DISTANCE_CHANGE_FOR_UPDATES = 0; // in Meters 
MINIMUM_TIME_BETWEEN_UPDATES = 1000; // in Milliseconds 
... 
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 
        MINIMUM_TIME_BETWEEN_UPDATES, 
        MINIMUM_DISTANCE_CHANGE_FOR_UPDATES, 
        locationListener); 

問題是,當我在地圖上繪製點時,它們似乎已經過濾。

地圖 - >http://postimg.org/image/l8ja9joht/

在地圖上測量是從三星Galaxy S +服用。當我從諾基亞E52(symbian)測量他們有更多的隨機錯誤。所以我假設andoird正在過濾測量結果。

你能給我一個提示嗎?我無法找到任何信息,如果測量結果是從接收機的原始GPS位置或由Android後過濾。

+0

不要看看過濾器,旁邊的靜態過濾器我在下面提到我的答案。 – AlexWien

回答

-1

是的,unfortunatley ios和android都啓用了靜態過濾器,無法禁用。當您不移動時,此過濾器會凍結您的位置。您可以嘗試的是禁用GPS並每2秒重新啓動一次。那麼你可能會得到一個新的測量位置。

+0

但我正在移動,問題是新的座標看起來像是在我接收到它們時用卡爾曼濾波器或其他算法進行過濾,無論如何,我會嘗試您的idead在每次下次重新啓動GPS時獲取新位置 –

+0

當然他們是卡爾曼過濾,我知道每個GPS芯片(Sirf,ublox)這樣做。這是在GPS芯片固件中完成的,如果想要的話,android不能禁用。 – AlexWien

+0

好吧,現在我得到1測量像這樣:locationManager.requestSingleUpdate(...)然後我從locationManager.removeUpdates(locationListener)刪除更新,然後我註冊一個新的測量聽衆,錯誤是從30-90米靠近建築物,但我必須等待10-15秒才能進入新位置 –