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

iOS6 Mobile Safari: Accuracy and update periods of geolocation.watchPosition

本文关键字:准确性 更新 周期 watchPosition Mobile Safari geolocation iOS6      更新时间:2023-09-26

我在iOS6上的iPhone4和iPhone5上的移动Safari上遇到了一个奇怪的行为

我想做什么

使用

,以精度跟踪用户在浏览器中的位置
geolocation.watchPosition({ enableHighAccuracy: true, maximumAge: 0, callback })

我面临的问题

正常情况下,当设备在室外、晴空和移动时,GPS定位的精度和更新周期都很好。

传递给回调的coords对象具有5米的精度,给出了正确的标题值,并且在移动回调时至少每500ms触发一次。

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

而且,更新周期更长,几乎是30秒。

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

  • 这似乎发生了,当gps传感器不是在"热待机",我的意思是它没有使用一段时间(不确定多长时间)由另一个本地应用程序。

  • 重新加载页面,重新允许GPS访问并重新初始化watchPosition不改变任何东西,仍然精度差,更新速度慢

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

  • 手动修复1:

    • 关闭Safari
    • 打开另一个本地应用程序,如地图或GMaps
    • 确定在原生应用中的位置
    • 打开Safari
    • GPS位置立即准确,以下位置更新在500ms周期内再次发射,并且非常准确(无需重新加载)。
  • 手动修复2:

    • 关闭Safari
    • 打开设置面板
    • 禁用wi - fi
    • 打开Safari
    • 问题再次修复(无需重新加载)
结论

当问题发生时,我查看了回调的coords对象,检测到以下内容:

虽然通过的位置离设备的实际位置很远(> 1km),但accuracy通过的位置要小得多(通常在165 m)。heading从未给出。

当iPhone上的WiFi被禁用时,在设置面板中有一个提示,说启用WiFi将提高确定你位置的准确性(因为AGPS是由地理编码的WiFi网络数据库支持的)。但据我所知,如果你想在移动safari中使用GPS,这是而不是。事实上,它的作用正好相反。

在我看来,移动safari做了这样的事情来确定位置:

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

  • 如果GPS之前未激活且WiFi已启用,则设备使用其WiFi数据库获取位置。(非常缓慢的更新,不准确)。它只是从一个WiFi位置更新到另一个。你可以很清楚地看到这一点,例如,如果你在联邦公路上开车,你的位置通常会被映射到下一个住宅区。

  • 只有当GPS之前没有激活并且WiFi是禁用移动safari将使用GPS来确定设备的位置(再次,快速准确)。

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

这是一个已知的错误移动safari,这将被修复的机会吗?或者我只是错过了一个更好的watchPosition配置,以获得更好的结果?

很多人都描述过类似的问题,包括我自己。在本次讨论https://discussions.apple.com/thread/4313850?start=45&tstart=0中,我已经在第5页及以后(作为alstorp)描述了我的问题阅读,看看是否符合你的问题。

问题是,据我所知,苹果公司还没有证实这一点。他们正在修吗?这真的站在他们一边吗?这真的是个bug吗?因此,我们不知道它何时/是否会被修复。

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

您是否广泛测试了您的修复?我的经验是,这种类型的修复在某些情况下是有帮助的,但不是一直(或长期)有效。如果它们能为你可靠地工作,那将是非常有趣的……

(也检查IOS6的地理位置watchPosition回调失败iOS 6打破了webapps中的地理定位功能

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

我试了watchPosition(onGeoSuccess,onGeoFail,{enableHighAccuracy:true});在我的web应用程序使用我的iPhone (iOS 7.0.2)。

在打开WiFi的情况下,准确度真的很差,有时会差一英里。在关闭WiFi的情况下,准确度接近完美,偶尔会有几百英尺的误差。

我还没有测试,看看是否有助于让GPS在捕获点之间运行,或者更好地将其关闭,直到您在下一个捕获点,并让watchPosition()函数解决。