【问题标题】:Increase Accuracy IE 11 Geolocation提高 IE 11 地理位置的准确性
【发布时间】:2015-01-24 15:07:58
【问题描述】:

我在网站上有一张 Google 地图 (v3)。当用户点击页面时,我正在从它的浏览器中读取地理位置(如果支持的话):

navigator.geolocation.getCurrentPosition(successCallback, errorCallback, {enableHighAccuracy: true, timeout: timeOut, maximumAge: maximumAge })

该功能正在工作,但并不总是如预期的那样。在谷歌浏览器中,它工作得很好——getCurrentPosition 函数返回一个坐标对象,其纬度和经度为浮点数(小数)。奇怪的是,它在 IE11 中有所不同。它还返回坐标对象 - 但这里的纬度和经度都是整数,这意味着精度非常差,并且没有真正在地图上显示正确的位置。

这是一个错误吗?有谁知道是否可以解决这个问题?

谢谢!

【问题讨论】:

    标签: javascript html google-maps internet-explorer geolocation


    【解决方案1】:

    不同的浏览器使用不同的地理定位服务提供商来估算您的位置,这可以解释为什么您在 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 来检测坐标。

    【讨论】:

    • 当然每个浏览器都使用不同的地理定位服务,但是 navigator.geolocation 是 html5 api 的标准程序,所以它应该可以正常工作,而不是我正在使用的地图提供商,我的意思是我可以使用bing o google maps,但准确度是相同的,因为它来自 navigator.geolocation 过程。我恐怕我得等到 micro$oft 修复那个可怕的实现。
    • 是的,方法 navigator.geolocation.getCurrentPosition 是标准化的,但是浏览器如何使它工作取决于它自己的实现和它使用的地理定位服务提供商(不同于地图服务)。某些 Google 服务在 Chrome 中运行得更好——它们针对该浏览器进行了优化。按照这个逻辑,我猜测微软可能会优化 Bing 地图以在其自己的 IE 浏览器中更好地工作,所以我建议你尝试检查准确性。我知道使用 2 个地图服务是不切实际的。
    • 按照这个线程,地理位置检测的准确性可能因位置而异。一个 SO 用户发现 IE 比 Firefox 检测到他的位置 - stackoverflow.com/a/9079730/325251
    • getCurrentPosition 完全独立于地图代码。它纯粹是浏览器/设备的事情,所以我认为如果你从 Google 切换到 Bing,它不会对准确性产生任何影响
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-29
    相关资源
    最近更新 更多