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

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")}}

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

Спецификация Статус Комментарий
Geolocation API Рекомендация

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

BCD tables only load in the browser

Доступность

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

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