This page was translated from English by the community. Learn more and join the MDN Web Docs community.

View in English Always switch to English

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

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨июль 2015 г.⁩.

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

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

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

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

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

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

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

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

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

Интерфейсы

Geolocation

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

GeolocationPosition

Предоставляет месторасположение пользователя. Экземпляр GeolocationPosition, полученный при успешном вызове одного из методов Geolocation, внутри колбэк-функции при успехе, содержит метку времени плюс экземпляр объекта GeolocationCoordinates.

GeolocationCoordinates

Предоставлять координаты пользователя; Экземпляр GeolocationCoordinates содержит широту, долготу и прочую важную подобную информацию.

GeolocationPositionError

GeolocationPositionError возвращается при неуспешном вызове методов, содержащихся в Geolocation, внутри колбэк-функции при ошибке, содержит код ошибки и сообщение.

Точка входа в API. Возвращает экземпляр объекта Geolocation, из которого становятся доступны все функции и методы.

Словари

PositionOptions

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

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

Specification
Geolocation
# geolocation_interface

Совместимость с браузерами

Доступность

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

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