Использование геолокации
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> |
Совместимость с браузерами
Loading…
Доступность
Так как местоположение, основанное на WiFi, часто предоставляется Google, API местоположения может быть не доступен в Китае. Вы можете использовать местных провайдеров, таких как Baidu, Autonavi или Tencent. Эти сервисы используют IP-адрес пользователя и/или приложение для предоставления наиболее точной позиции.