Использование геолокации

Secure context: This feature is available only in secure contexts (en-US) (HTTPS), in some or all supporting browsers.

Geolocation API позволяет пользователю предоставлять своё местоположение web-приложению, если пользователь согласится предоставить его. Из соображений конфиденциальности, у пользователя будет запрошено разрешение на предоставление информации о местоположении.

Концепты и использование

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

API геолокации может быть вызвано через Navigator.geolocation; это заставит браузер пользователя вывести уведомление с запросом для доступа к текущему местоположению. Если его одобрят, то браузер сможет предоставить доступ ко всем возможностям по работе с информацией о местонахождении (например, GPS).

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

  • Geolocation.getCurrentPosition(): возвратит местоположение устройства
  • Geolocation.watchPosition() (en-US): зарегистрирует функцию-обработчик, которая будет вызываться автоматически каждый раз, когда местоположение изменится, возвращая новые данные.

В обоих случая, методы принимают три аргумента:

  • Обязательную колбэк-функцию при успехе: если удалось получить местоположение пользователя, то функция вызовется с объектом GeolocationPosition как одним параметром, предоставляющим доступ к данным о месторасположении.
  • Необязательную колбэк-функцию при ошибке: если не удалось получить позицию, то колбэк-функция вызовется с объектом GeolocationPositionError как одним параметром, содержащим информацию о том, что пошло не так.
  • Необязательный объект PositionOptions, который содержит надстройки получения данных о местоположении.

Интерфейсы

Geolocation
Главный класс этого API — содержит методы для получения текущего местоположения пользователя, наблюдает за его изменениями и удаляет функции-наблюдатели.
GeolocationPosition
Предоставляет месторасположение пользователя. Экземпляр GeolocationPosition, полученный при успешном вызове одного из методов Geolocation, внутри колбэк-функции при успехе, содержит метку времени плюс экземпляр объекта GeolocationCoordinates.
GeolocationCoordinates
Предоставлять координаты пользователя; Экземпляр GeolocationCoordinates содержит широту, долготу и прочую важную подобную информацию.
GeolocationPositionError
GeolocationPositionError возвращается при неуспешном вызове методов, содержащихся в Geolocation, внутри колбэк-функции при ошибке, содержит код ошибки и сообщение.
Navigator.geolocation
Точка входа в API. Возвращает экземпляр объекта Geolocation, из которого становятся доступны все функции и методы.

Словари

PositionOptions
Предоставляет объект, содержащий опции, которые можно передать как параметр в  Geolocation.getCurrentPosition() и Geolocation.watchPosition() (en-US).

Примеры

{{page("/ru/docs/Web/API/Geolocation_API/Using","Examples")}}

Спецификации

Specification
Geolocation API
# geolocation_interface

Поддержка браузерами

BCD tables only load in the browser

Доступность

Так как местоположение, основанное на WiFi, часто предоставляется Google, API местоположения может быть не доступен в Китае. Вы можете использовать местных провайдеров, таких как Baidu, Autonavi или Tencent. Эти сервисы используют IP-адрес пользователя и/или приложение для предоставления наиболее точной позиции.

Смотрите также