Учебники

HTML5 — геолокация

HTML5 Geolocation API позволяет вам поделиться своим местоположением с вашими любимыми веб-сайтами. JavaScript может фиксировать вашу широту и долготу и может быть отправлен на бэкэнд-сервер и выполнять такие интересные вещи, как поиск местных предприятий или отображение вашего местоположения на карте.

Сегодня большинство браузеров и мобильных устройств поддерживают Geolocation API. API геолокации работают с новым свойством объекта глобального навигатора, т.е. Геолокационный объект, который можно создать следующим образом:

var geolocation = navigator.geolocation;

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

Методы геолокации

Объект геолокации предоставляет следующие методы:

Sr.No. Метод и описание
1 getCurrentPosition ()

Этот метод извлекает текущее географическое местоположение пользователя.

2 watchPosition ()

Этот метод извлекает периодические обновления о текущем географическом местоположении устройства.

3 clearWatch ()

Этот метод отменяет текущий вызов watchPosition.

Этот метод извлекает текущее географическое местоположение пользователя.

Этот метод извлекает периодические обновления о текущем географическом местоположении устройства.

Этот метод отменяет текущий вызов watchPosition.

пример

Ниже приведен пример кода для использования любого из вышеуказанного метода —

function getLocation() {
   var geolocation = navigator.geolocation;
   geolocation.getCurrentPosition(showLocation, errorHandler);
}

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

Свойства местоположения

Методы геолокации getCurrentPosition () и getPositionUsingMethodName () определяют метод обратного вызова, который получает информацию о местоположении. Эти методы вызываются асинхронно с объектом Position, который хранит полную информацию о местоположении.

Объект Position указывает текущее географическое местоположение устройства. Местоположение выражается в виде набора географических координат вместе с информацией о курсе и скорости.

В следующей таблице описаны свойства объекта Position. Для необязательных свойств, если система не может предоставить значение, значение свойства устанавливается равным нулю.

Имущество Тип Описание
Coords объекты Определяет географическое местоположение устройства. Местоположение выражается в виде набора географических координат вместе с информацией о курсе и скорости.
coords.latitude Число Определяет оценку широты в десятичных градусах. Диапазон значений: [-90.00, +90.00].
coords.longitude Число Определяет оценку долготы в десятичных градусах. Диапазон значений: [-180.00, +180.00].
coords.altitude Число [Необязательно] Указывает оценку высоты в метрах над эллипсоидом WGS 84.
coords.accuracy Число [Необязательно] Определяет точность оценок широты и долготы в метрах.
coords.altitudeAccuracy Число [Необязательно] Определяет точность оценки высоты в метрах.
coords.heading Число [Необязательно] Определяет текущее направление движения устройства в градусах, считая по часовой стрелке относительно истинного севера.
coords.speed Число [Необязательно] Указывает текущую скорость движения устройства в метрах в секунду.
отметка времени Дата Указывает время, когда была получена информация о местоположении и создан объект Position.

пример

Ниже приведен пример кода, который использует объект Position. Здесь метод showLocation является методом обратного вызова —

function showLocation( position ) {
   var latitude = position.coords.latitude;
   var longitude = position.coords.longitude;
   ...
}

Обработка ошибок

Геолокация сложна, и очень нужно отлавливать любые ошибки и обрабатывать их корректно.

Методы геолокации getCurrentPosition () и watchPosition () используют метод обратного вызова обработчика ошибок, который предоставляет объект PositionError . Этот объект имеет следующие два свойства —

Имущество Тип Описание
код Число Содержит числовой код ошибки.
сообщение строка Содержит понятное человеку описание ошибки.

В следующей таблице описаны возможные коды ошибок, возвращаемые в объекте PositionError.

Код постоянная Описание
0 НЕИЗВЕСТНАЯ ОШИБКА Метод не смог получить местоположение устройства из-за неизвестной ошибки.
1 ДОСТУП ЗАПРЕЩЕН Метод не смог получить местоположение устройства, поскольку у приложения нет разрешения на использование службы определения местоположения.
2 POSITION_UNAVAILABLE Местоположение устройства не может быть определено.
3 АУТ Метод не смог получить информацию о местоположении в течение указанного максимального интервала ожидания.

пример

Ниже приведен пример кода, который использует объект PositionError. Здесь errorHandler метод является методом обратного вызова —

function errorHandler( err ) {
   
   if (err.code == 1) {
      
      // access is denied
   }
   ...
}

Параметры позиции

Ниже приведен фактический синтаксис метода getCurrentPosition ():

getCurrentPosition(callback, ErrorCallback, options)

Здесь третьим аргументом является объект PositionOptions, который определяет набор параметров для получения географического местоположения устройства.

Ниже приведены параметры, которые можно указать в качестве третьего аргумента.

Имущество Тип Описание
enableHighAccuracy логический Указывает, хочет ли виджет получить максимально точную оценку местоположения. По умолчанию это ложно.
Тайм-аут Число Свойство timeout — это количество миллисекунд, в течение которых ваше веб-приложение готово ждать позиции.
maximumAge Число Задает время истечения в миллисекундах для кэшированной информации о местоположении.

пример

Ниже приведен пример кода, который показывает, как использовать вышеупомянутые методы —