Как вы получаете длинную информацию с помощью navigator.geolocation при подключении через сетевой кабель - PullRequest
1 голос
/ 23 августа 2010

navigator.geolocation.getCurrentPosition возвращает приблизительную информацию о длине / длине, если я подключаюсь к Интернету через беспроводную сеть.Однако вызов метода не выполняется при подключении через сетевой кабель.Это дизайн или я что-то упустил?Ниже приведен пример html-страницы, и я использую Chrome 5 для его тестирования.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Geocode Test</title>
    <script type="text/javascript">
        function getGeoLocation() {
            if (navigator.geolocation) {
                navigator.geolocation.getCurrentPosition(function (position) {
                    alert(position);
                },
                function () {
                    alert("oops");
                });
            }
        }
    </script>
</head>
<body>
    <h1>Get Current Location</h1>
    <button id='btnGetLocation' onclick='getGeoLocation()'>Get Current Location</button>
</body>
</html>

TIA

Ответы [ 2 ]

1 голос
/ 23 августа 2010

Реализация API Geolocation в Chrome предпочитает использовать триангуляцию WiFi, а не геолокацию IP (вопреки ответу Тони Миллера), хотя я считаю, что Google Location Services действительно использует IP-адрес, когда это необходимо, или, по крайней мере, использует егоподтвердите свое предположение.

Когда вы подключены через сетевой кабель, у вас все еще работает WiFi?Обычно эти службы не требуют подключения к определенной сети WiFi, они просто используют полный список всех видимых беспроводных сетей.Но если вы выключите WiFi на своем компьютере или отключите доступные беспроводные сети поблизости, это в значительной степени предотвратит работу navigator.geolocation.

0 голосов
/ 23 августа 2010

Я не видел никакой разницы в способности геолокации в зависимости от сети.Более подробный метод получения данных о геолокации приведен в примере кода геолокации Google Maps .Что вы должны сделать, это сравнить беспроводной IP-адрес с проводным IP-адресом.Возможно, происходит какая-то трансляция NAT, или же значение беспроводной IP не было занесено в базу данных IP-to-geo, к которой вы обращаетесь.

...