Geolocation.watchPosition()

Secure context
This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

The Geolocation.watchPosition() method is used to register a handler function that will be called automatically each time the position of the device changes. You can also, optionally, specify an error handling callback function.

This method returns a watch ID value that then can be used to unregister the handler by passing it to the Geolocation.clearWatch() method.

Syntax

id = navigator.geolocation.watchPosition(success[, error[, options]])

Parameters

success
A callback function that takes a Position object as an input parameter.
error Optional
An optional callback function that takes a PositionError object as an input parameter.
options Optional
An optional PositionOptions object.

Example

var id, target, options;
function success(pos) {
  var crd = pos.coords;
  if (target.latitude === crd.latitude && target.longitude === crd.longitude) {
    console.log('Congratulations, you reached the target');
    navigator.geolocation.clearWatch(id);
  }
}
function error(err) {
  console.warn('ERROR(' + err.code + '): ' + err.message);
}
target = {
  latitude : 0,
  longitude: 0
};
options = {
  enableHighAccuracy: false,
  timeout: 5000,
  maximumAge: 0
};
id = navigator.geolocation.watchPosition(success, error, options);

Note: If your application is running on firefox OS, please take a look at geolocation wake lock to keep your application getting position updates while in the background or screen off.

Specifications

Specification Status Comment
Geolocation API
The definition of 'Geolocation.watchPosition()' in that specification.
Recommendation Initial specification.

Browser compatibility

Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari
Basic support 5 (Yes) 3.5 (1.9.1) 9 10.60
Removed in 15.0
Reintroduced in 16.0
5
Secure context-only 47 ? 55 (55) No support (Yes) (Yes)
Feature Android Chrome for Android Edge Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support ? ? (Yes) 4.0 (4) ? 10.60 ?
Secure context-only No support 47 ? 55 (55) No support (Yes) (Yes)

See also