Технология Geolocation

  Технология геолокации позволяет определить (более или менее точно) географическое положение клиентского устройства.
  Для такого определения (позиционирования) браузеры обычно обращаются к провайдерам LP - ( location provider), которые имеют технологии позиционирования и предоставляют соответствующий сервис.
  Браузер указывает некие исходные данные, в которых нуждается LP для позиционирования. От наличия и состава этих данных зависит точность позиционирования. Это могут быть IP-адрес или почтовый адрес, которые имеются у интернет провайдера пользователя клиентского устройства. Для мобильных клиентских устройств могут использоваться радиосигналы их антенн, или встроенное программное обеспечение, сопряжённое с приёмником GPS.
  Geolocation.
  Geolocation - Является интерфейсом к геолокации.
  Экземпляр доступен:

  1. Через свойство geolocation объекта Navigator
  Geolocation методы.
  clearWatch - Отменяет процедуру позиционирования запущенную методом watchPosition.
  Возвращает значение undefined.

Формат записи в коде скрипта:

  • Экземпляр объекта Geolocation.clearWatch(Идентификатор)

Значения формата записи:

  getCurrentPosition - Асинхронно запускает позиционирование клиентского устройства.
  Возвращает значение undefined.

Формат записи в коде скрипта:

  • Экземпляр объекта Geolocation.getCurrentPosition(Функция успеха[, Функция ошибки[, Опции]])

Значения формата записи:

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

Формат записи в коде скрипта:

  • Экземпляр объекта Geolocation.watchPosition(Функция успеха[, Функция ошибки[, Опции]])

Значения формата записи:

  Geoposition.
  Geoposition - Является интерфейсом к позиции клиентского устройства в текущий момент времени.
  Экземпляр доступен:

  1. С помощью метода getCurrentPosition объекта Geolocation
  2. С помощью метода watchPosition объекта Geolocation
  Geoposition свойства.
  coords - Содержит экземпляр объекта Coordinates.

Формат записи в коде скрипта:

  • Экземпляр объекта Geoposition.coords

Значения формата записи:

  timestamp - Содержит количество миллисекунд от полночи 1 января 1970 года до времени текущего позиционирования.
  Значение имеет числовой формат.
  По стандарту свойство должно содержать экземпляр объекта DOMTimeStamp.

Формат записи в коде скрипта:

  • Экземпляр объекта Geoposition.timestamp

Значения формата записи:

  GeopositionError.
  GeopositionError - Является интерфейсом к ошибке позиционирования.
  Экземпляр доступен:

  1. С помощью метода getCurrentPosition объекта Geolocation
  2. С помощью метода watchPosition объекта Geolocation
  GeopositionError свойства.
  code - Содержит код ошибки позиционирования.
  Значение имеет числовой формат.

Формат записи в коде скрипта:

  • Экземпляр объекта GeopositionError.code

Значения формата записи:

  • Экземпляр объекта GeopositionError - Любой операнд значения со значением экземпляра объекта GeopositionError.
  • . - Оператор доступа к свойству объекта.
  • code - Ключевое слово.
      Значения:
    • 1 - Пользователь клиентского устройства не разрешил его позиционирование.
    • 2 - Внутренняя ошибка позиционирования.
    • 3 - Позиционирование не было выполнено до наступления тайм-аута.
  message - Содержит описание ошибки позиционирования.
  Значение имеет строковый формат.

Формат записи в коде скрипта:

  • Экземпляр объекта GeopositionError.message

Значения формата записи:

  GeopositionOptions.
  GeopositionOptions - Является интерфейсом к опциям позиционирования.
  Экземпляр доступен:

  1. С помощью конфигуратора объектов
  GeopositionOptions свойства.
  enableHighAccuracy - Содержит значение, определяющее требования к точности позиционирования.
  Значение имеет логический формат.

Формат записи в коде скрипта:

  • Экземпляр объекта GeopositionOptions.enableHighAccuracy[= true|false]

Значения формата записи:

  • Экземпляр объекта GeopositionOptions - Любой операнд значения со значением экземпляра объекта GeopositionOptions.
  • . - Оператор доступа к свойству объекта.
  • enableHighAccuracy - Ключевое слово.
  • = - Оператор присвоения. Ключевое слово в этом формате.
  • true - Значение true.
      Запрашивает наиболее точное позиционирование.
      Такой запрос может привести к увеличению времени позиционирования и(или) увеличению расхода электроэнергии мобильного устройства.
  • false - Значение false.
      Запрашивает позиционирование, процедура которого займет минимально возможное время и(или) потребует минимального расхода электроэнергии мобильного устройства.
      Значение по умолчанию.
  timeout - Содержит максимально допустимое время позиционирования.
  Значение имеет числовой формат.

Формат записи в коде скрипта:

  • Экземпляр объекта GeopositionOptions.timeout[= Время]

Значения формата записи:

  Coordinates.
  Coordinates - Является интерфейсом к позиции клиентского устройства и точности позиционирования.
  Экземпляр доступен:

  1. Через свойство coords объекта Geoposition
  Coordinates свойства.
  accuracy - Содержит оценочную точность широты и долготы позиции клиентского устройства (в метрах) - результата позиционирования.
  Значение имеет числовой формат.

Формат записи в коде скрипта:

  • Экземпляр объекта Coordinates.accuracy

Значения формата записи:

  altitude - Содержит высоту положения клиентского устройства над уровнем моря (в метрах) - результат позиционирования.
  Значение имеет числовой формат или null.

Формат записи в коде скрипта:

  • Экземпляр объекта Coordinates.altitude

Значения формата записи:

  altitudeAccuracy - Содержит оценочную точность высоты положения над уровнем моря клиентского устройства (в метрах) - результата позиционирования.
  Значение имеет числовой формат или null.

Формат записи в коде скрипта:

  • Экземпляр объекта Coordinates.altitudeAccuracy

Значения формата записи:

  heading - Содержит оценочное направление движения клиентского устройства - результат позиционирования.
  Значение имеет числовой формат или null.

Формат записи в коде скрипта:

  • Экземпляр объекта Coordinates.heading

Значения формата записи:

  • Экземпляр объекта Coordinates - Любой операнд значения со значением экземпляра объекта Coordinates.
  • . - Оператор доступа к свойству объекта.
  • heading - Ключевое слово.
      Указывает величину угла (в градусах), который образует вектор предполагаемого движения с виртуальной осью, соответствующей - северу.
      Движение строго на восток соответствует значению 90 градусов, строго на запад - 270 градусов, строго на юг - 360 градусов.
  latitude - Содержит географическую широту позиции клиентского устройства (в градусах) - результат позиционирования.
  Значение имеет числовой формат десятичной дроби.

Формат записи в коде скрипта:

  • Экземпляр объекта Coordinates.latitude

Значения формата записи:

  longitude - Содержит географическую долготу позиции клиентского устройства (градусах) - результат позиционирования.
  Значение имеет числовой формат десятичной дроби.

Формат записи в коде скрипта:

  • Экземпляр объекта Coordinates.longitude

Значения формата записи:

  speed - Содержит оценочную скорость движения клиентского устройства (в метрах в секунду) - результат позиционирования.
  Значение имеет числовой формат или null.

Формат записи в коде скрипта:

  • Экземпляр объекта Coordinates.speed

Значения формата записи:

Сводная таблица методов
Имя метода Объект Функционал Возвращаемое значение
clearWatch Geolocation Отменяет позиционирование при смене местоположения. undefined
getCurrentPosition Geolocation Запускает позиционирование. undefined
watchPosition Geolocation Устанавливает позиционирование при смене местоположения. Идентификатор watchPosition

Сводная таблица свойств
Имя свойства Объект Содержание Тип значения
accuracy Coordinates Оценочная точность широты и долготы позиции. Числовой формат
altitude Coordinates Высота положения клиентского устройства над уровнем моря. Числовой формат
altitudeAccuracy Coordinates Оценочная точность высоты положения клиентского устройства над уровнем моря. Числовой формат
code GeopositionError Код ошибки позиционирования. Числовой формат
coords Geoposition Экземпляр объекта Coordinates. Экземпляр объекта
enableHighAccuracy GeopositionOptions Требования к точности позиционирования. Логический формат
heading Coordinates Оценочное направление движения клиентского устройства. Числовой формат
latitude Coordinates Географическая широта позиции. Числовой формат
longitude Coordinates Географическая долгота позиции. Числовой формат
message GeopositionError Описание ошибки позиционирования. Строковый формат
timestamp Geoposition Количество миллисекунд от полночи 1 января 1970 года до времени текущего позиционирования. Числовой формат
timeout GeopositionOptions Максимально допустимое время позиционирования. Числовой формат
speed Coordinates Оценочная скорость движения клиентского устройства. Числовой формат
Пример.
<BUTTON ID="STARTW" >Определить свои координаты</BUTTON>
<DIV ID="TOW"></DIV>
<SCRIPT>
  var GP =
    {
      enableHighAccuracy: false,
      timeout: 600000,
    };
  var Geo = null;
  var Out = null;
  var TOW = document.getElementById("TOW");
  var StartGeo = document.getElementById("STARTW");
  var OPE = function(W)
    {
      var Err = "Ошибка позиционирования - " + W.code ;
      alert(Err);
    };
  var OPW = function(X)
    {
      Out = "<BR> Широта -" + X.coords.latitude
        + "<BR> Долгота -" + X.coords.longitude
        + "<BR> Оценочная точность - " + X.coords.accuracy + "( ± метров)";
      TOW.innerHTML = Out;
    };
  var start = function(X)
    {
      TOW.innerHTML = " ";
      Geo = navigator.geolocation;
      Geo.getCurrentPosition(OPW, OPE, GP)
    };
  StartGeo.onclick = start;

</SCRIPT>

Результат.