This page was translated from English by the community. Learn more and join the MDN Web Docs community.
Использование геолокации
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-адрес пользователя и/или приложение для предоставления наиболее точной позиции.