Определение своего местоположения

Определение своего местоположения.

API Geolocation (Геолокация) разработан в качестве стандартного детекторного механизма браузеров, с помощью которого разработчики могут определять физическое местоположение пользователя. Раньше у нас был только один способ узнавать, где находится пользователь: строить большую базу данных IP-адресов и использовать на сервере пожирающие компьютерные ресурсы сценарии, обеспечивающие лишь приблизительную оценку местоположения (обычно с точностью до страны).

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

Для того чтобы можно было пользоваться возможностями API, добавлены три специальных метода:

— getCurrentPosition(location, error, configuration). Применяется для одиночных запросов. Принимает три атрибута: функцию для обработки возвращенного значения местоположения, функцию для обработки возвращенных значений ошибки и объект для настройки способа получения информации. Для того чтобы метод работал правильно, обязательно указывать только первый атрибут, остальные можно опустить;

— watchPosition(location, error, configuration). Похож на предыдущий, но в отличие от него не срабатывает разово, а запускает процесс слежения за местоположением. Принцип работы аналогичен использованию метода setInterval() из JavaScript: процесс автоматически повторяется на протяжении определенного времени в зависимости от конфигурации по умолчанию или значений атрибутов;

— clearWatch(id). Метод watchPosition() возвращает значение, которое можно сохранить в переменной, а затем, когда потребуется остановить слежение, передать его в качестве идентификатора методу clearWatch(). Принцип аналогичен использованию метода clearInterval() для остановки процесса, запущенного с помощью setInterval().

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

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