我已经开始参考本教程创建一个运动跟踪应用程序 ,一切正常。
但是在我停止跟踪并转到地图之后,我看到公里数比我肯定经过的公里数要多得多,而且地图显示我在某些地方肯定无法到达.. .
(因为我没有手机中的图像,所以我用附加的图像模拟了地图的结果......)代码与教程代码相同(修正了处理删除 var 的错误 - 对于那些知道本教程的人...))有什么问题?
我已经开始参考本教程创建一个运动跟踪应用程序 ,一切正常。
但是在我停止跟踪并转到地图之后,我看到公里数比我肯定经过的公里数要多得多,而且地图显示我在某些地方肯定无法到达.. .
(因为我没有手机中的图像,所以我用附加的图像模拟了地图的结果......)代码与教程代码相同(修正了处理删除 var 的错误 - 对于那些知道本教程的人...))有什么问题?
我发现和eee一样——Android 在使用 GPS 时会间歇性地提供非常不准确的位置,所以最好的办法是使用精度过滤器,如下所示:
var MinimumAccuracy = 20; // metres
var options = { maximumAge: 0, timeout: 30000, enableHighAccuracy: true };
var watchID;
function onSuccess(position){
// Reject udpate if accuracy is not sufficient
if(position.coords.accuracy > MinimumAccuracy){
console.warn("Position update rejected because accuracy of"+position.coords.accuracy+"m is less than required "+MinimumAccuracy+"m");
return;
}
/* else, do something with position */
}
function onError(error){
// Log the error
console.error("Error while retrieving current position. Error code: " + error.code + ",Message: " + error.message);
}
navigator.geolocation.watchPosition( onSuccess, onError, options );