4

作为我的文凭项目的一部分,我遇到了获取 GPS 坐标的问题。我用 JavaScript 和 HTML5 开发了一个从浏览器获取坐标的程序。

但是定位的准确率很低。我使用watchPosition()超时方法:1000

所以这是我的观察:

  1. 我在 iPhone 上运行一个 HTML5 应用程序,准确性开始下降。(从 150 到 1500 米)
  2. 然后我在 iPhone 上运行一个带有地图的本地应用程序,比如谷歌地图,而不是等到它找到我的位置。
  3. 然后我在浏览器中转到我的 HTML5 应用程序。

现在精度比以前高了(大约5-10米)。发生了什么事?以及如何在不运行第三方应用程序的情况下使准确度像现在一样高?

4

2 回答 2

3

正如 Miha 建议的那样,我怀疑您需要 enableHighAccuracy 参数,但是,getCurrentPosition()有时会过早放弃。它会给你一个位置事件,但有时,准确性低于预期。

我为此编写了一个简单的包装器,watchLocation它具有类似的接口,getCurrentPosition但允许您指定超时值和可接受的准确性。

它位于https://github.com/gwilson/getAccurateCurrentPosition的 github 上——调用如下所示:

navigator.geolocation.getAccurateCurrentPosition(onSuccess, onError, {desiredAccuracy:20, maxWait:15000});

将上述选项翻译成英文——这将尝试以至少 20 米的精度找到设备位置,并尝试在 15 秒内达到此精度

于 2012-10-07T21:47:09.300 回答
1

enableHighAccuracy与 一起使用navigator.geolocation.getCurrentPosition。这是您需要知道的全部内容:HTML5 Doctor

于 2012-10-07T11:07:02.167 回答