Метод watchPosition(location, error, configuration)

Метод watchPosition(location, error, configuration).

Аналогично getCurrentPosition(), метод watchPosition() принимает три атрибута и выполняет ту же задачу, а именно: устанавливает местоположение устройства, с которого пользователь обратился к приложению. Единственное различие заключается в том, что первый метод выполняет операцию один раз, в то время как watchPosition() автоматически возвращает новые данные при каждом изменении местоположения. Этот метод постоянно следит за координатами и при появлении новых данных отсылает информацию функции обратного вызова. Отменить этот процесс можно методом clearWatch().

В следующем примере мы внедряем метод watchPosition() на основе предыдущих примеров кода.

Выполнив этот код на настольном компьютере, вы не заметите ничего необычного, но если запустить его на мобильном устройстве, то новая информация будет отображаться каждый раз, когда местоположение устройства изменится. Атрибут maximumAge определяет, как часто географическая информация отсылается функции showinfo(). Если новые географические данные извлекаются через 60 с (60 000 мс) после предыдущей попытки, то они выводятся на экран, в противном случае функция showinfo() не вызывается.

Листинг 9.5. Тестируем метод watchPosition()

Function initiate(){

Var get=document. getElementById(‘getlocation’); get. addEventListener(‘click’, getlocation, false);

}

Function getlocation(){ var geoconfig={

EnableHighAccuracy: true, maximumAge: 60000

};

Control=navigator. geolocation. watchPosition(showinfo, showerror, geoconfig);

}

Function showinfo(position){

Var location=document. getElementById(‘location’); var data=»;

Data+=’Широта: ‘+position. coords. latitude+’<br>’; data+=’Долгота: ‘+position. coords. longitude+’<br>’; data+=’T04H0CTb: ‘+position. coords. accuracy+’mts.<br>’; location. innerHTML=data;

}

Function showerror(error){

Alert(‘Ошибка: ‘+error. code+’ ‘+error. message);

}

Window. addEventListener(‘load’, initiate, false);

Обратите внимание на то, что значение, возвращаемое методом watchPosition(), сохраняется в переменной control. Эта переменная служит своеобразным идентификатором данной операции. Если позднее мы захотим отменить обработку данного метода, то для этого нужно будет всего лишь выполнить запрос clearWatch(control), и метод watchPosition()

Прекратит обновлять информацию.

Если запустить этот код на настольном компьютере, то метод watch-Position() будет работать абсолютно так же, как getCurrentPosition(): никакая информация обновляться не будет. Обращение к функции обратного вызова происходит только в одном случае — когда местоположение меняется.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *