2016-03-07 30 views
2

我跟蹤騎手的位置(自行車騎手)並計算他每次走過的總距離。我只使用融合的位置api(沒有GPS)。有些時候我在跳躍的位置,並由於這些跳躍額外的距離被添加,從而導致整體錯誤的距離。請幫助我找到這些錯誤的緯度和經度。有什麼好的過濾器可以很容易地在Android中實現,或者有什麼好的方法可以實現嗎?在使用融合位置api的位置跳轉

+0

你做了什麼?請至少添加一段代碼。 –

回答

0

位置不確切。即使使用GPS,它也不是。熔融的位置可能會偏離數百米。如果你每隔幾分鐘就會站立一次,你會得到一個真正關閉的閱讀。有時我從廚房走到浴室,它認爲我走了四分之一英里。如果你看看它返回的準確性,記住你在這個距離內有2/3的機會。在這個半徑範圍內你仍然有33%的可能性。

你將不得不接受不準確。有幾個想法,你可以做,雖然

1)忽略所有更新,除非他們旅行至少一些最小距離。加入所有這些小數量會快速增加很多不準確性。 2)在接受新位置之前,需要在新位置附近至少進行2次更新。

但是,如果您使用網絡位置進行短時移動,您將遇到困難時期。

+0

我在每30秒後請求位置更新,並在總行程中得到大約1-1.5公里的誤差。 –

+0

我對此並不感到驚訝。 FusedProvider稱之爲「塊精度」是有原因的 - 他們期望它能在大約一個城市街區範圍內。另一方面,如果你站在一個地方,它會給你一堆或多或少的隨機點。 –

+0

閱讀有關使用卡爾曼濾波器相同,但我不知道如何在我的Android代碼中實現這一點。如果有人幫助我用當前的緯度,經度,精度,時間來實現卡爾曼濾波器,並且在locationChanged上改變緯度和經度,那將會很棒。 –

0

進入設置 - >位置 - >模式。 並確保模式僅設置爲「設備」。 這將停止跳轉

1

對原始GPS數據的距離測量始終是嘈雜的,因爲底層數據通常不準確。這些跳躍是由於不準確的位置測量。要實現精確的距離測量,您可能需要過濾數據中的噪音。

,你可以探索

一些有用的過濾技術主要有:

  1. 利用卡爾曼濾波器平滑位置數據 - 見tutorial

  2. 捕捉到的道路與谷歌地圖snap-to-roads API,或OSRM match service

如果您正在尋找能夠提供準確位置數據和距離測量的端到端解決方案,您還可以嘗試Android或iOS的HyperTrack SDK。您可以閱讀他們如何過濾位置以提高their blog的準確性。 (聲明:我工作在HyperTrack。)

相關問題