Просто быстрый вопрос я создал следующий код:
http://letterpool.testmode.co.uk/map.html
Однако с некоторыми пользователями я получаю отчеты, что люди обходят 200-300 метров своего фактического местоположения.
Кто-либо знает почему?
Потому что геолокация неточна и никогда не была точной. Вероятно, они выясняют местонахождение ближайшей распределительной коробки.
Вместе со мной он нашел центр обработки данных, в котором работает мой интернет-провайдер - за много миль.
См. эту статью.
W3C Geolocation API , который вы используете для определения местоположения пользователей на тестовой карте намеренно не зависит от метода, который браузер использует для определения местоположения устройства. Это полезное удобство, поскольку устройства сильно различаются по способу определения местоположения (GPS, триангуляция Wi-Fi, триангуляция вышек сотовой связи, геолокация IP, ручной ввод и т. Д.), И ваш веб-сайт, вероятно, не хочет иметь дело со всеми этими деталями.
Однако, если вас не устраивает точность, вы можете воспользоваться несколькими вариантами, которые могут помочь. Параметр enableHighAccuracy
намекнет устройству, что ему следует использовать немного больше энергии, чтобы получить более точное местоположение. В настоящее время вы используете широту и долготу возвращаемого значения, но API также возвращает значение точности, поэтому вы можете видеть, является ли полученное вами положение точным или нет. Вы также можете использовать watchPosition
, который будет постоянно обновлять местоположение и может в конечном итоге получить достаточно точное исправление для ваших целей (большинство мобильных устройств, как правило, запускаются с низкой точностью и становятся более точными в течение нескольких секунд или минут).
Геолокация, конечно, зависит от доступных методов измерения положения. Если браузер имеет только IP-адрес, то он будет очень неточным, но если он имеет доступ к GPS-устройству, как в смартфоне, то он будет довольно хорошим.