2017-03-01 99 views
2

概述獲取精確的距離在2 GPS座標xamarin

我創建使用需要獲得在給定範圍內(約3米)分xamarin C#移動應用程序。有隨緯度和經度,我需要做的多點就是:

  • 獲取currentPosition我在哪裏從手機
  • 站在查找currentPosition(細胞GPS)之間的距離,和其他多點
  • 顯示其中談到下給定的範圍的那些(3米的條件)

============================ ========================================

我做了什麼:

  • 爲了得到currentPosition,我使用plugin geolocator。在其positionChanged(),它被設置currentPosition可變我使用的(這是時間可持續運行和不斷變化的currentPosition

  • 要獲得currentPosition和其他固定點之間的距離,我使用HaversineFormula

  • 然後取那些來自在3米的距離

的================================== ===========================

問題我面對

  • 作爲currentPosition正在汽車無改變,緯度和經度有時少一種高精度(小數點後7位),有時高度一種高精度(15位),並且當計算出的距離,這是一個巨大的差異。即使我不移動我的移動設備(靜態),它仍然不斷更新currentPosition
  • 即使它們在不到1米的範圍內,它也不會顯示附近的點。 HaversineFormula有問題嗎?

如何在設備靜態時控制current position

我已經測試了建築物和陽臺外的整個代碼以獲得更好的結果,但無法解決此問題。

+0

只是一個快速評論,你知道GPS的精度具有至少3米的可能的錯誤?所以找到3米範圍內的物體我認爲是不會一直工作的... – Pikoh

+0

什麼是最大誤差?我準備將半徑從3米改爲10米,但距離仍不準確 –

+0

根本就不是這方面的專家,所以這可能是不可能的,但是你可以在數據改變你的位置變量之前過濾數據嗎?如果是這樣,這聽起來像[卡爾曼濾波器]的經典用例(https://en.wikipedia.org/wiki/Kalman_filter)。 – jcb

回答

1

只是一個更新..我能夠得到附近的點。 問題在於使用geolocator獲取當前位置。我不知道爲什麼它在獲取當前位置座標時不起作用,但錯誤率非常高。 無論如何,現在我已經實施Google Play服務融合位置apis來獲取位置並提供高準確度。

所以任何人如果要實現這類功能的,你可以去這個API