Javascript iOS6 Mobile Safari:geolocation.watchPosition的准确性和更新周期

Javascript iOS6 Mobile Safari:geolocation.watchPosition的准确性和更新周期,javascript,ios,html,geolocation,mobile-safari,Javascript,Ios,Html,Geolocation,Mobile Safari,我在iPhone4上的mobile Safari和iOS6上的iPhone5上面临着一种奇怪的行为 我想做什么 使用高精度跟踪用户在浏览器中的位置 geolocation.watchPosition({ enableHighAccuracy: true, maximumAge: 0, callback }) 我面临的问题 通常,当设备在室外、晴空和移动时,GPS位置的精度和更新周期非常好 传递给回调函数的coords对象的精度为5米,给出了正确的航向值,移动回调函数时,至少每500毫秒触发一次

我在iPhone4上的mobile Safari和iOS6上的iPhone5上面临着一种奇怪的行为

我想做什么 使用高精度跟踪用户在浏览器中的位置

geolocation.watchPosition({ enableHighAccuracy: true, maximumAge: 0, callback })
我面临的问题 通常,当设备在室外、晴空和移动时,GPS位置的精度和更新周期非常好

传递给回调函数的
coords
对象的精度为5米,给出了正确的航向值,移动回调函数时,至少每500毫秒触发一次

但是:有时,即使我在相同的条件下(尽可能地)测试,被观察的位置也永远不会准确

此外,更新周期要长得多,大约30秒

基本上,在这种情况下,HTML地理位置无法用于精确跟踪位置

观察
  • 这似乎发生了,当GPS传感器不处于“热备用”状态时,我的意思是它有一段时间没有被另一个本机应用程序使用(不确定使用了多长时间)

  • 重新加载页面、重新允许GPS访问和重新初始化watchPosition不会改变任何东西,仍然存在精度差和更新缓慢的问题

  • 更改传递给
    watchPosition
    的选项似乎没有任何作用

  • 手动修复1:

    • 近距离狩猎
    • 打开另一个本地应用程序,如地图或GMAP
    • 确定本机应用程序中的位置
    • 开放式狩猎
    • GPS位置立即准确,随后的位置更新将在500毫秒内再次触发,并且非常准确(无需重新加载)
  • 手动修复2:

    • 近距离狩猎
    • 打开设置面板
    • 禁用Wi-Fi
    • 开放式狩猎
    • 同样,问题已修复(无需重新加载)
结论 出现问题时,我查看了回调的
coords
对象,并检测到以下内容:

即使通过的位置远离设备的实际位置(>1km),通过的
精度也要小得多(通常为165米)。从未给出
标题

当iPhone上的WiFi被禁用时,设置面板中会显示一条提示,提示启用WiFi将提高确定位置的准确性(因为地理编码WiFi网络的数据集支持AGPS)。但据我所知,如果你想在移动狩猎中使用GPS,这是不正确的。事实上,情况恰恰相反

在我看来,mobile safari会这样做来确定位置:

  • 如果设备上已激活/正在使用GPS,则使用GPS传感器(快速准确的位置更新)

  • 如果之前GPS未激活且启用了WiFi,则设备仅使用其WiFi数据库获取位置。(更新速度非常慢,不准确)。它只是从一个WiFi位置更新到另一个位置。您可以非常清楚地看到这一点,例如,如果您在联邦道路上行驶,因为您的位置通常会被映射到下一个居住区

  • 只有当GPS之前未激活且WiFi已禁用时,mobile safari才会使用GPS确定设备的位置(同样,快速且准确)

问题: 有人能证实我的问题和观察结果吗? 我在早期的iOS版本中使用地理定位,但以前从未遇到过这个问题


这是否是移动safari的已知错误,有没有可能修复?或者我只是错过了一个更好的
watchPosition配置来获得更好的结果?

很多人都描述过类似的问题,包括我自己。在本次讨论中,我已经在第5页及以后的部分(如alstorp)中描述了我的问题 阅读并查看它是否符合您的问题

问题是,据我所知,苹果尚未证实这一点。他们正在修理它吗?这真的对他们有利吗?它真的是一只虫子吗?因此,我们不知道何时/是否会修复

有没有人对iOS 6中基于浏览器的地理定位没有问题?(即使在不同情况下多次测试后)

您是否全面测试了修复程序?我的经验是,这种类型的修复在某些情况下会有所帮助,但不是一直(或长期)都有帮助。如果他们能可靠地为你工作,那真的很有趣

(同时检查 )

有人能证实我的问题和观察结果吗?我在早期的iOS版本中使用地理定位,但以前从未遇到过这个问题

我尝试了watchPosition(onGeoSuccess、onGeoFail、{enableHighAccurance:true});在我的网络应用程序中使用我的iPhone(iOS 7.0.2)

使用WiFi时,准确度非常差,有时差一英里。关闭WiFi后,精确度近乎完美,偶尔会出现几百英尺的偏差

我还需要进行测试,看看让GPS在捕获点之间运行是否有帮助,或者在到达下一个捕获点并让watchPosition()函数稳定下来之前是否最好将其关闭