Использование геолокации
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 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 |
Совместимость с браузерами
BCD tables only load in the browser
Доступность
Так как местоположение, основанное на WiFi, часто предоставляется Google, API местоположения может быть не доступен в Китае. Вы можете использовать местных провайдеров, таких как Baidu, Autonavi или Tencent. Эти сервисы используют IP-адрес пользователя и/или приложение для предоставления наиболее точной позиции.