Использование геолокации
        
        
          
                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-адрес пользователя и/или приложение для предоставления наиболее точной позиции.