Географическое положение браузера, отображающее два начальных местоположения - PullRequest
0 голосов
/ 23 апреля 2011

Я написал страницу карты, которая использует геолокацию для определения местоположения пользователя.Когда пользователь нажимает кнопку, этот javascript называется:

if (navigator.geolocation) {
wpid = navigator.geolocation.watchPosition(function (position) {
       setUserPosition(position, "Your location", pollUserPosition);
       }, 
       function() { handleNoGeolocation(true); },
       { enableHighAccuracy: false, maximumAge: 30000, timeout: 10000 }
    );
}

Насколько я понимаю, watchPosition начнет опрашивать местоположение пользователя до тех пор, пока ему не будет приказано остановиться.Это делается путем вызова clearWatch и передачи wpid из вызова watchPositon.setUserPosition создаст маркер на карте на основе местоположения в позиции.Когда я тестирую эту страницу в мобильном сафари, иногда я получаю два начальных местоположения, отмеченных на карте.Кто-нибудь знает, почему я вернул две локации и как я могу вернуть только одну?Это из-за того, что местоположение возвращается как с помощью сотового соединения, так и с помощью Wi-Fi на iPhone?

Обновление: В качестве теста я отключил WiFi на телефоне и проверил страницу картыснова.К сожалению, я все еще получаю два начальных местоположения, когда я вызываю watchPosition.

1 Ответ

0 голосов
/ 25 апреля 2011

с помощью watchPosition вы получите обновленную информацию о местоположении в обратном вызове, если данные о местоположении изменяются либо при перемещении устройства, либо при получении более точной геоинформации.

Так что, если вы хотите только одну позицию, попробуйте использовать:

navigator.geolocation.getCurrentPosition

Это должно вернуть только одну позицию. Вы уже пробовали это?

...