0
我目前正在生產一個移動web應用程序,使用戶可以隨應用程序一起行走,並且它將測量覆蓋的距離(僅限於直線)。顯然,使用Haversine很好,並且計算按預期工作。不過,我已經注意到在iOS 5(iPhone 3GS,未經測試的4和4G)上進行測試時出現了一些小問題。navigator.geolocation報告錯誤的第一個值
下面是我使用的看着自己的位置上的JavaScript:
var points = [ ]; // This will be an array holding all of the points we have recorded.
// Start watching the position:
navigator.geolocation.watchPosition(function(location) {
var this_coords = { lat: location.coords.latitude, lng : location.coords.longitude };
points.push(this_coords);
}, function() { }, true);
// When we're done, I output them to the console:
var start = points[0],
end = points[points.length - 1];
console.log('Start: ' + start.lat + ', ' + start.lng);
console.log('End: ' + end.lat + ', ' + end.lng);
從本質上講,所有的點都記錄到一個數組,然後第一個和最後一個經/緯對用於半正矢。但是,輸入到數組中的初始值似乎總是不正確的(距離很遠)。最終值總是正確的(在〜5m內)。
有誰知道爲什麼第一次閱讀可能會如此不準確,或者我怎樣才能避免這種情況?我想也許只是忽略了第一個問題,然後進行了二讀,但這顯然不是很科學。