iOS6 Mobile Safari: geolocation.watchPosition的准确性和更新周期
iOS6 Mobile Safari: Accuracy and update periods of geolocation.watchPosition
我在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
- 问题再次修复(无需重新加载)
结论
这似乎发生了,当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()函数解决。
- Javascript循环不会自我更新
- 添加文字和评论功能更新Div
- AngularJS:ng之后,重复$scope值未按预期更新
- 如何通过数组更新角度子范围
- Ajax聊天消息重复而不仅仅是更新
- 通过CSV文件上载更新数据库表
- 平均值:无法将数据更新到数据库
- $rootScope未使用forEach进行更新
- d3基于用户选择动态更新节点
- 有条件更新d3.js力图中节点的最佳方法
- Angular:更新一次性绑定的数据
- Javascript更新孙窗口中的表单元素
- 使用AngularJS中的筛选器更新给定的表
- 从选项页面更新chrome扩展清单权限
- 如何在不刷新页面的情况下更新显示框
- 延期承诺值未更新/解析/延期
- 标记的实时更新,无需加载页面谷歌地图API V3
- 使用mongodb更新中的一个变量
- 访问jsrender模板中的全局javascript变量并更新它
- iOS6 Mobile Safari: geolocation.watchPosition的准确性和更新周期