определить, если геолокация основана на IP? - PullRequest
1 голос
/ 31 мая 2011

Я играю с google maps-api и хочу показать посетителю сообщение, если геолокация карт Google основана на IP, а не на wifi или gps.Причина в том, чтобы сказать им, что местоположение не настолько точное ... Но я не могу найти функцию для проверки этого.

Ответы [ 2 ]

0 голосов
/ 31 мая 2011

Я не верю, что внутри API Карт Google v3 есть механизм для определения того, как была получена позиция.Но вы можете использовать свойство точности, чтобы узнать, насколько точна позиция, и затем предупредить пользователей, если оно превышает установленный вами порог.

Свойство точности указано в метрах.Таким образом, меньшее число означает, что полученная вами позиция более точна.

Вот пример:

navigator.geolocation.getCurrentPosition(
    function(position) { alert(position.coords.accuracy); },
    function() {alert("failure"); },
    {enableHighAccuracy:true});
0 голосов
/ 31 мая 2011

Одним из параметров API геокодирования Карт Google является сенсор :

"датчик (обязательно) - указывает, поступает ли запрос геокодирования с устройства с датчиком местоположения. Это значение должно быть либо истинным, либо ложным."

Вам, вероятно, придется выполнить проверку пользовательской среды, чтобы определить, использует ли она GPS, а затем передать значение в качестве параметра для датчика. Это может варьироваться в зависимости от среды (по крайней мере, я не знаю, как сделать ее нейтральной к платформе).

Другой возможностью является использование Google ClientLocation, которое, как мне кажется, использует только местоположение на основе IP. Затем вы можете сравнить это с вашим значением. Если они одинаковы, то вы знаете.

...