3

У меня есть карта Google (v3) на веб-сайте. Когда пользователь нажимает на страницу, я читаю геолокации из подмигнули браузера (если подмигнули поддерживается):Повысить точность IE 11 Геолокация

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

Функция работает, но не всегда, как и ожидалось. В Google Chrome он отлично работает - функция getCurrentPosition возвращает объект координат с широтой и долготой в виде плавающих точек (десятичных знаков). Любопытно, что в IE11 это отличается. Он также возвращает объект координат, но здесь и широта, и долгота в целых числах, что означает, что точность очень плохая и на самом деле не показывает правильную позицию на карте.

Это ошибка? И кто-нибудь знает, можно ли это исправить?

Спасибо!

ответ

4

Различные браузеры используют разных поставщиков геолокации, чтобы получить оценку вашего местоположения, и это может объяснить, почему вы видите разные результаты с Google Maps.

Google Chrome аналогичным образом использует службы геолокации Google. The default geolocation service provider of Firefox is Google Location Services также. Safari uses Skyhook Wireless's service.

Поиск в Интернете я не смог найти, какой конкретный поставщик услуг геолокации использует, но различные результаты, которые вы видите между браузерами, можно отнести за счет качества данных, предоставляемых поставщиком геолокации. Поэтому я предполагаю, что вам нужно дождаться, что точность вычисления геолокации в IE улучшится, поскольку я не видел документального способа изменения поставщика услуг геолокации, используемого браузером. В качестве альтернативы, посмотрите, хорошо ли работает Bing Maps в IE или попробуйте использовать коммерческую службу обнаружения геолокации на базе IP, например Maxmind, для обнаружения координат.

+0

Конечно, каждый браузер использует разные службы геолокации, но navigator.geolocation - это стандартная процедура html5 api, поэтому она должна работать должным образом, не имея счетчика, с которым я пользуюсь поставщиком карт, я имею в виду, что я могу использовать bing o google maps, но точность такая же, поскольку она исходит из процедуры navigator.geolocation. Я боюсь, что мне нужно подождать, пока микрофон не исправит эту ужасную реализацию. – fgc

+2

Да, метод navigator.geolocation.getCurrentPosition стандартизирован, но то, что браузер делает для его работы, зависит от его собственной реализации и поставщика услуг геолокации (отличного от службы отображения), который он использует. Некоторые службы Google работают лучше в Chrome - они оптимизированы для этого браузера. По этой логике я УВЕРЕН, что Microsoft МОЖЕТ оптимизировать Bing Maps для лучшей работы в своем браузере IE, поэтому я предложил вам попробовать проверить точность. Я понимаю, что использование 2 картографических служб нецелесообразно. – mvark

+0

По этой теме точность определения геолокации может варьироваться в зависимости от местоположения. Пользователь SO нашел IE, чтобы обнаружить его местоположение, чем Firefox. Http://stackoverflow.com/a/9079730/325251 – mvark

Смежные вопросы