Opera中的地理位置实现

时间:2013-03-21 23:34:01

标签: html5 geolocation opera w3c-geolocation

我正在测试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网站上观察到这一点

geotest.apphb.com

编辑: 几分钟前我学会了opera:config让我可以访问地理位置设置,我发现仅在更改时发送位置请求。 当我把它关闭时,地理位置api就像它应该的那样工作。但我不明白这个设置。发送位置请求需要更改什么? 启用此设置后,geolocation api会在几小时前为我提供位置。即使我已经在不同的城市。

2 个答案:

答案 0 :(得分:2)

根据Opera's config website for Windows仅在更改时发送位置请求表示以下内容:

  

如果某些数据提供者(Wi-Fi,手机等)实际发生了变化,则仅发送位置请求。

所以我假设当你改变城市时,你没有像上面提到的那样改变数据提供者。如果您要找到Wi-Fi接入点或使用其他技术访问互联网,它可能会发送位置请求并会更新。

答案 1 :(得分:0)

由于页面已加载,getCurrentPosition假定您想要的位置是页面加载时的位置(用户当前在页面加载时的位置)。

使用watchPosition连续更新位置(无需重新加载页面)。