是否可以通过网络浏览器在移动设备上以最大精度接收GPS位置?
我已经使用HTML5地理定位中的getCurrentPosition()
和watchPosition()
对移动设备进行了测试,在办公楼周围走来走去。我已经收到Android HTC Desire(Android浏览器)和iPhone 3(Safari)最大精度70米,没有高度/速度数据,WiFi已打开。 WiFi关闭后,准确度降至800-1000米。
同时,在Android上的GPS Test应用中,我已经获得了14米的GPS定位精度,以及高度和速度数据。
因此,正如我所看到的,我在移动浏览器的两个设备中都没有收到GPS上提供的完整数据集,也没有设备传感器达到的精确度。
所以,我的问题是,浏览器接收的GPS数据集是否受到设备的限制,或浏览器本身无法充分利用它?我想在我的网络应用程序中拥有完整的GPS精度,而无需编写正常的'移动应用。
答案 0 :(得分:2)
根据this answer,您可以尝试使用enableHighAccuracy
选项(如果您还没有)。
但请参阅有关iPhone的Why is Geolocation in Mobile Safari way less accurate than the location in a native App?,其中似乎移动版Safari中的JavaScript地理位置API无法获得与本机应用的位置服务API一样准确的位置信息。
答案 1 :(得分:1)
好的,我的同事给了我很有价值的提示。
出于安全考虑,Android的内置浏览器(因此,我已经进行过测试的Android浏览器)无法获得完全精确的GPS定位。精确度降低了预防性。因此,当WiFi关闭时,我得到的反应是精确度为800-1000米。随着WiFi打开,我收到的回调的准确度是70米。
所以,我已经使用Opera Mobile和Firefox进行了测试,这些测试需要获得许可才能在安装时从GPS获得准确的位置(与GPS测试相同)。这些浏览器在关闭接收数据的GPS之后具有精确度< 10米,与原生应用相同。
因此,Android的答案是:不要将Android浏览器用于网站,您希望以高精度获取GPS位置。似乎谷歌人决定,如果用户没有接受Android浏览器的GPS精确位置,他可能不会意识到,这个浏览器为WWW网站提供了如此精确的数据。至于Opera和Firefox - 它是用户安装的应用程序,所以这是他的选择。
关闭WiFi的iPhone测试为Safari提供了50米的精确度。因此,Android的准确性受到的限制要少得多,但是受到了限制。但是,由于Opera停止了iPhone的开发,因此将Safari替换为其他支持HTML5的浏览器存在问题。
所有测试都是在办公大楼外进行的,当时看到10-12个GPS发射器。