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