我的网站上有 Google map (v3)。当用户点击该页面时,我正在从它的浏览器中读取地理位置(如果支持):
navigator.geolocation.getCurrentPosition(successCallback, errorCallback, {enableHighAccuracy: true, timeout: timeOut, maximumAge: maximumAge })
该功能正在运行,但并不总是如预期的那样。在谷歌浏览器中,它工作得很好——getCurrentPosition 函数返回一个坐标对象,其纬度和经度作为 float (小数)。奇怪的是,它在 IE11 中有所不同。它还返回坐标对象 - 但这里的纬度和经度都是整数,这意味着精度非常差,并没有真正显示 map 上的正确位置。
这是一个错误吗?有谁知道是否可以解决这个问题?
谢谢!
最佳答案
不同的浏览器使用不同的地理定位服务提供商来估计您的位置,这可以解释为什么您在使用 Google map 时会看到不同的结果。
谷歌浏览器同样使用谷歌定位服务。 The default geolocation service provider of Firefox is Google Location Services以及。 Safari uses Skyhook Wireless's service .
在网络上搜索时,我找不到 IE 使用了哪个特定的地理定位服务提供商,但您在浏览器之间看到的不同结果可归因于地理定位服务提供商提供的数据质量。所以我的猜测是,您必须等待 IE 中地理定位计算的精度得到提高,因为我还没有看到任何记录的方法来更改浏览器使用的地理定位服务提供商。或者,查看 Bing map 在 IE 中是否运行良好或尝试使用商业的基于 IP 的地理位置检测器服务,如 Maxmind检测坐标。
关于javascript - 提高 IE 11 地理定位的准确性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27146602/