我正在测试HTML5地理位置。 我在Opera和Opera Mobile中有一些奇怪的结果。
当我在最后一次访问之后的一段时间(例如25分钟)访问该网站时,时间戳是过去的某个时间。但我通过选项告诉我,我希望位置不会超过5秒。页面刷新后,我得到的位置时间戳接近'now'。我认为它应该在每次访问时将位置时间戳接近“现在”。
示例:
首次访问:位置时间戳23:23:13
关闭浏览器:
在23:45:20返回现场:位置时间戳23:25:21
刷新:位置时间戳23:45:11
以下是我的API调用:
navigator.geolocation.getCurrentPosition(geoSuccess, geoError, { maximumAge: 5000, timeout: 10000, enableHighAccuracy: true });
您可以在我为测试
创建的azure网站上观察到这一点编辑: 几分钟前我学会了opera:config让我可以访问地理位置设置,我发现仅在更改时发送位置请求。 当我把它关闭时,地理位置api就像它应该的那样工作。但我不明白这个设置。发送位置请求需要更改什么? 启用此设置后,geolocation api会在几小时前为我提供位置。即使我已经在不同的城市。
答案 0 :(得分:2)
根据Opera's config website for Windows,仅在更改时发送位置请求表示以下内容:
如果某些数据提供者(Wi-Fi,手机等)实际发生了变化,则仅发送位置请求。
所以我假设当你改变城市时,你没有像上面提到的那样改变数据提供者。如果您要找到Wi-Fi接入点或使用其他技术访问互联网,它可能会发送位置请求并会更新。
答案 1 :(得分:0)
由于页面已加载,getCurrentPosition
假定您想要的位置是页面加载时的位置(用户当前在页面加载时的位置)。
使用watchPosition
连续更新位置(无需重新加载页面)。