为什么Mobile Safari中的Geolocation方式不如本机App中的位置准确?

Ste*_*zel 6 iphone html5 web-applications geolocation

我正在使用Geolocation API(通常称为"HTML5 Geolocation")来获取用户的当前位置.如果移动(每秒检查一次),它会自动更新.主要针对iPhone(目前已经过测试),但也适用于其他移动设备.你可以在这里看到一个例子:

http://jsbin.com/uyoyey/

在我测试(外部)时,您可以在管道后的每一行中看到的精度大约为3000(米).这显然很糟糕.我的iPhone上的原生地图应用程序更精确.大约10到30米(通过查看地图和我站在哪里.在另一个应用程序中检查长值和纬度值也可以提供更准确的数字.

当我现在切换回Safari时,准确度会跳到10到30,但在一秒后恢复到3000.

问题:

  1. 你能复制这种行为吗?
  2. 为什么这个地方到目前为止一开始呢?
  3. 通过Geolocation和CLLocationManager访问GPS数据之间有区别吗(我认为本机应用程序使用它)?

谢谢!

更新1:
我在其他地方(较大的城市)进行测试时获得了更准确的结果,但我现在想知道原生应用程序是否也使用运动跟踪来更新位置.这可以解释为什么地图应用程序可以跟踪我的步骤,而Safari无法识别它们.

更新2(03.08.11):
在与Peter-Paul Koch的电子邮件对话中,他写道Safari主要使用wifi进行地理定位以延长电池续航时间.这可以解释这些差异.
我仍然不完全确定发生了什么.

Pau*_*ite 2

    \n
  1. 我可以\xe2\x80\x99t,但只是因为懒惰:)

  2. \n
  3. 我\xe2\x80\x99m不确定,但我怀疑Safari正在使用iPhone\xe2\x80\x99s位置感知的非GPS部分。

  4. \n
  5. 再次,我\xe2\x80\x99m 不确定,但 Dive into HTML5 提到 HTML5 地理定位 API 允许您将对象传递给PositionOptions并且getCurrentPosition该对象有一个enableHighAccuracy属性。

    \n\n

    将其设置为true可能会使 Safari 使用与CLLocationManager. (不过我自己没有这方面的经验。)

  6. \n
\n