我創建使用需要獲得在給定範圍內(約3米)分xamarin C#移動應用程序。有隨緯度和經度,我需要做的多點就是:
- 獲取
currentPosition
我在哪裏從手機 - 站在查找
currentPosition
(細胞GPS)之間的距離,和其他多點 - 顯示其中談到下給定的範圍的那些(3米的條件)
============================ ========================================
我做了什麼:
爲了得到
currentPosition
,我使用plugin geolocator
。在其positionChanged()
,它被設置currentPosition
可變我使用的(這是時間可持續運行和不斷變化的currentPosition
)要獲得
currentPosition
和其他固定點之間的距離,我使用HaversineFormula
然後取那些來自在3米的距離
的================================== ===========================
個問題我面對
- 作爲
currentPosition
正在汽車無改變,緯度和經度有時少一種高精度(小數點後7位),有時高度一種高精度(15位),並且當計算出的距離,這是一個巨大的差異。即使我不移動我的移動設備(靜態),它仍然不斷更新currentPosition
。 - 即使它們在不到1米的範圍內,它也不會顯示附近的點。
HaversineFormula
有問題嗎?
如何在設備靜態時控制current position
?
我已經測試了建築物和陽臺外的整個代碼以獲得更好的結果,但無法解決此問題。
只是一個快速評論,你知道GPS的精度具有至少3米的可能的錯誤?所以找到3米範圍內的物體我認爲是不會一直工作的... – Pikoh
什麼是最大誤差?我準備將半徑從3米改爲10米,但距離仍不準確 –
根本就不是這方面的專家,所以這可能是不可能的,但是你可以在數據改變你的位置變量之前過濾數據嗎?如果是這樣,這聽起來像[卡爾曼濾波器]的經典用例(https://en.wikipedia.org/wiki/Kalman_filter)。 – jcb