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 insecure contexts (HTTPS), in some or allsupporting browsers.
Geolocation API позволяет пользователю предоставлять своё местоположение web-приложению, если пользователь согласится предоставить его. Из соображений конфиденциальности, у пользователя будет запрошено разрешение на предоставление информации о местоположении.
In this article
Концепты и использование
Вы часто хотите получать информацию о местоположении пользователя в своём веб приложении, например, для отображения участка на карте, либо для того, чтобы показывать информацию, основанную на местоположении посетителя.
API геолокации может быть вызвано черезNavigator.geolocation; это заставит браузер пользователя вывести уведомление с запросом для доступа к текущему местоположению. Если его одобрят, то браузер сможет предоставить доступ ко всем возможностям по работе с информацией о местонахождении (например, GPS).
Тогда разработчику станут доступны несколько разных способов получения соответствующей информации:
Geolocation.getCurrentPosition(): возвратит местоположение устройстваGeolocation.watchPosition(): зарегистрирует функцию-обработчик, которая будет вызываться автоматически каждый раз, когда местоположение изменится, возвращая новые данные.
В обоих случая, методы принимают три аргумента:
- Обязательную колбэк-функцию при успехе: если удалось получить местоположение пользователя, то функция вызовется с объектом
GeolocationPositionкак одним параметром, предоставляющим доступ к данным о месторасположении. - Необязательную колбэк-функцию при ошибке: если не удалось получить позицию, то колбэк-функция вызовется с объектом
GeolocationPositionErrorкак одним параметром, содержащим информацию о том, что пошло не так. - Необязательный объект
PositionOptions, который содержит надстройки получения данных о местоположении.
Интерфейсы
GeolocationГлавный класс этого API — содержит методы для получения текущего местоположения пользователя, наблюдает за его изменениями и удаляет функции-наблюдатели.
GeolocationPositionПредоставляет месторасположение пользователя. Экземпляр
GeolocationPosition, полученный при успешном вызове одного из методовGeolocation, внутри колбэк-функции при успехе, содержит метку времени плюс экземпляр объектаGeolocationCoordinates.GeolocationCoordinatesПредоставлять координаты пользователя; Экземпляр
GeolocationCoordinatesсодержит широту, долготу и прочую важную подобную информацию.GeolocationPositionErrorGeolocationPositionErrorвозвращается при неуспешном вызове методов, содержащихся вGeolocation, внутри колбэк-функции при ошибке, содержит код ошибки и сообщение.Navigator.geolocationТочка входа в API. Возвращает экземпляр объекта
Geolocation, из которого становятся доступны все функции и методы.
Словари
PositionOptionsПредоставляет объект, содержащий опции, которые можно передать как параметр в
Geolocation.getCurrentPosition()иGeolocation.watchPosition().
Спецификации
| Specification |
|---|
| Geolocation> # geolocation_interface> |
Совместимость с браузерами
Доступность
Так как местоположение, основанное на WiFi, часто предоставляется Google, API местоположения может быть не доступен в Китае. Вы можете использовать местных провайдеров, таких какBaidu,Autonavi илиTencent. Эти сервисы используют IP-адрес пользователя и/или приложение для предоставления наиболее точной позиции.