3

我正在测试 HTML5 地理位置。我在 Opera 和 Opera Mobile 中有一些奇怪的结果。

当我在上次访问位置时间戳后的一段时间(例如 25 分钟)后访问该站点时,该时间戳来自过去的某个时间。但是我通过选项告诉我我想要位置不超过 5 秒。页面刷新后,我得到接近“现在”的位置时间戳。我认为它应该在每次访问时返回接近“现在”的位置时间戳。

例子:

首次访问:位置时间戳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 按预期工作。但是我不明白这个设置。为了发送位置请求必须改变什么?启用此设置后,地理位置 api 会为我提供几个小时前的位置。即使我已经在不同的城市。

4

2 回答 2

2

根据Opera 的 Windows 配置网站仅在更改时发送位置请求意味着以下内容:

仅在某些数据提供者(Wi-Fi、小区等)实际发生更改时才发送位置请求。

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

于 2013-04-03T13:21:06.653 回答
0

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

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

于 2013-04-03T00:05:27.413 回答