geolocation.watchPosition

Часы для изменения в текущее положение устройства.

var watchId = navigator.geolocation.watchPosition(geolocationSuccess,
                                                  [geolocationError],
                                                  [geolocationOptions]);

Параметры

  • geolocationSuccess: обратный вызов, который передается в текущей позиции.

  • geolocationError: (необязательно) обратного вызова, который выполняется при возникновении ошибки.

  • geolocationOptions: параметры (необязательно) географического расположения.

Возвращает

  • Строка: Возвращает идентификатор часы, ссылается на часы позиции интервала. Идентификатор часы должны использоваться с [geolocation.clearWatch](geolocation.clearWatch.html) чтобы остановить просмотр изменений в позиции.

Описание

geolocation.watchPositionЭто асинхронные функции. Возвращает текущую позицию устройства при обнаружении изменения в позиции. Когда устройство получает новое местоположение, [geolocationSuccess](parameters/geolocationSuccess.html) обратного вызова выполняется с Position объект в качестве параметра. Если есть ошибка, [geolocationError](parameters/geolocationError.html) обратного вызова выполняется с [PositionError](PositionError/positionError.html) объект в качестве параметра.

Поддерживаемые платформы

  • Андроид
  • WebWorks ежевики (OS 5.0 и выше)
  • iOS
  • Tizen
  • Windows Phone 7 и 8
  • ОС Windows 8

Быстрый пример

// onSuccess Callback
//   This method accepts a `Position` object, which contains
//   the current GPS coordinates
//
function onSuccess(position) {
    var element = document.getElementById('geolocation');
    element.innerHTML = 'Latitude: '  + position.coords.latitude      + '<br />' +
                        'Longitude: ' + position.coords.longitude     + '<br />' +
                        '<hr />'      + element.innerHTML;
}

// onError Callback receives a PositionError object
//
function onError(error) {
    alert('code: '    + error.code    + '\n' +
          'message: ' + error.message + '\n');
}

// Options: throw an error if no update is received every 30 seconds.
//
var watchID = navigator.geolocation.watchPosition(onSuccess, onError, { timeout: 30000 });

Полный пример

<!DOCTYPE html>
<html>
  <head>
    <title>Device Properties Example</title>

    <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
    <script type="text/javascript" charset="utf-8">

    // Wait for device API libraries to load
    //
    document.addEventListener("deviceready", onDeviceReady, false);

    var watchID = null;

    // device APIs are available
    //
    function onDeviceReady() {
        // Throw an error if no update is received every 30 seconds
        var options = { timeout: 30000 };
        watchID = navigator.geolocation.watchPosition(onSuccess, onError, options);
    }

    // onSuccess Geolocation
    //
    function onSuccess(position) {
        var element = document.getElementById('geolocation');
        element.innerHTML = 'Latitude: '  + position.coords.latitude      + '<br />' +
                            'Longitude: ' + position.coords.longitude     + '<br />' +
                            '<hr />'      + element.innerHTML;
    }

        // onError Callback receives a PositionError object
        //
        function onError(error) {
            alert('code: '    + error.code    + '\n' +
                  'message: ' + error.message + '\n');
        }

    </script>
  </head>
  <body>
    <p id="geolocation">Watching geolocation...</p>
  </body>
</html>