Ric*_*ard 9 javascript html5 location google-chrome geolocation
我正在努力在HTML地理定位中使用maximumAge参数.它在Chrome中的工作方式似乎与规范不符.
我已经阅读了地理位置API规范,从我可以理解的情况来看,如果你将maximumAge设置为零,你应该总是得到一个新的位置.
maximumAge属性指示应用程序愿意接受其年龄不大于指定时间(以毫秒为单位)的缓存位置.如果maximumAge设置为0,则实现必须立即尝试获取新的位置对象.将maximumAge设置为Infinity必须确定返回缓存位置的实现,而不管其年龄如何.如果实现没有可用的缓存位置,其年龄不大于指定的maximumAge,则它必须获取新的位置对象.对于watchPosition(),maximumAge引用实现返回的第一个位置对象.
但是,这是我的代码:
function gpsSuccess(pos) {
var positionDate = new Date(pos.timestamp);
var currentDate = new Date();
console.log(positionDate.toLocaleString(), currentDate.toLocaleString());
}
watchId = navigator.geolocation.watchPosition(gpsSuccess,
gpsFail, {
enableHighAccuracy: true,
maximumAge: 0,
timeout: 27000
});
Run Code Online (Sandbox Code Playgroud)
而且我看到以下内容:
Wed Nov 23 2011 10:25:43 GMT+0000 (GMT), Wed Nov 23 2011 10:52:16 GMT+0000 (GMT)
Run Code Online (Sandbox Code Playgroud)
所以这是获得的位置与当前时间之间的半小时差异.
我认为它可能只是卫星时间和当地时间之间的差异,但我一直在重复刷新,并且positionDate没有改变,即使currentDate是.
为什么重用相同的缓存位置,即使maximumAge设置为零?
这是Chrome,BTW.
| 归档时间: |
|
| 查看次数: |
3380 次 |
| 最近记录: |