2015-11-03 43 views
0

我有一個網絡應用程序,允許用戶創建一個有氧鍛鍊,他們可能會或可能不會實際移動。他們可以在跑步機外面或跑步機上創造「跑步」。無論哪種方式,都會自動啓用地理定位。HTML5地理位置:衡量何時不移動

但我只顯示屏幕上的距離,如果他們移動了至少0.25英里。我自己測試過這個問題,問題是地理位置告訴我即使不是我也會移動!

今天晚上我在橢圓機上玩了32分鐘,我的應用程序告訴我我已經移動了1.15英里。

如果我在實際移動時測試應用程序(例如在汽車,自行車等中),地理定位可以正常工作。只有當我不移動,我有問題。

其他人面對這個問題?是否有防止它的黑客? 我使用Android版Chrome瀏覽器。

回答

0

嗯,我已經想出了我自己的解決方案來解決這個問題。我相信這不是完美的,但它似乎運作良好。這是部分基於這個優秀的文章...

Getting the best single location

對於我的web應用程序,我用一個陣列來捕捉50緯度/經度與小於11米的精確度。捕捉第50個座標後,我抓住下一個緯度/ lng作爲我的當前位置。我基本上假設在檢查了50個座標精度好於11米的座標後,我應該有一個非常好的主意,我在哪裏。

當檢查室內WiFi(例如在跑步機上的健身房)的座標時,精確度很少會接近11米,並且陣列要麼沒有填滿,要麼填充半小時左右。即便如此,到那時,我的位置非常穩定,而且當我沒有真正移動時,應用程序不會計算距離。

當外部使用手機信號塔時,陣列將在不到30秒的時間內正常填充50個座標。這意味着我失去了人員移動的前30秒。但是,如果你正在步行或騎自行車,那真的不會錯過很多。最後,我的距離測量結果可能會在一英里左右。我可以忍受這一點。

我學到的最大教訓是,HTML5地理定位的「getCurrentPostion()」基本上毫無價值。該方法只是簡單地將lat/lng座標從手機中取出,這通常是關閉的。在我的代碼中,我調用「updateLocation()」50次來收集座標。最後,這更準確。

花點時間閱讀上面提出的文章。你會學到很多。