OpenLayers v4.0.1 API - Class: Geolocation

# Class: Geolocation

This documentation is for OpenLayers v4.0.1. The latest is v.

## ol.Geolocation

Helper class for providing HTML5 Geolocation capabilities. The Geolocation API is used to locate a user's position.

To get notified of position changes, register a listener for the generic `change` event on your instance of `ol.Geolocation`.

Example:

    var geolocation = new ol.Geolocation({
      // take the projection to use from the map's view
      projection: view.getProjection()
    });
    // listen to changes in position
    geolocation.on('change', function(evt) {
      window.console.log(geolocation.getPosition());
    });

#### new ol.Geolocation(opt_options)

src/ol/geolocation.js, line 43

  Name | Type | Description
  --- | --- | ---

  `options`

  Options.

  Name | Type | Description
  --- | --- | ---
  `tracking` | boolean | undefined | Start Tracking. Default is `false`.
  `trackingOptions` | GeolocationPositionOptions | undefined | Tracking options. See http://www.w3.org/TR/geolocation-API/#position_options_interface.
  `projection` | ol.ProjectionLike | The projection the position is reported in.

  ##### Fires:

  - `change` (ol.events.Event) - Generic change event. Triggered when the revision counter is increased.
  - `change:accuracy` (ol.Object.Event)
  - `change:accuracyGeometry` (ol.Object.Event)
  - `change:altitude` (ol.Object.Event)
  - `change:altitudeAccuracy` (ol.Object.Event)
  - `change:heading` (ol.Object.Event)
  - `change:position` (ol.Object.Event)
  - `change:projection` (ol.Object.Event)
  - `change:speed` (ol.Object.Event)
  - `change:tracking` (ol.Object.Event)
  - `change:trackingOptions` (ol.Object.Event)
  - `error` - Triggered when the Geolocation returns an error.
  - `propertychange` (ol.Object.Event) - Triggered when a property is changed.

### Extends

- ol.Object

### Observable Properties

Name | Type | Settable | ol.Object.Event type | Description
--- | --- | --- | --- | ---
`accuracy` | number | undefined | no | `change:accuracy` | The accuracy of the position measurement in meters.
`accuracyGeometry` | ol.geom.Geometry | no | `change:accuracygeometry` | A geometry of the position accuracy.
`altitude` | number | undefined | no | `change:altitude` | The altitude of the position in meters above mean sea level.
`altitudeAccuracy` | number | undefined | no | `change:altitudeaccuracy` | The accuracy of the altitude measurement in meters.
`heading` | number | undefined | no | `change:heading` | The heading of the device in radians from north.
`position` | ol.Coordinate | undefined | no | `change:position` | The current position of the device reported in the current projection.
`projection` | ol.proj.Projection | undefined | yes | `change:projection` | The projection the position is reported in.
`speed` | number | undefined | no | `change:speed` | The instantaneous speed of the device in meters per second.
`tracking` | boolean | yes | `change:tracking` | The device location is being tracked.
`trackingOptions` | GeolocationPositionOptions | undefined | yes | `change:trackingoptions` | PositionOptions as defined by the HTML5 Geolocation spec .

### Methods

#### changed() inherited

src/ol/observable.js, line 58

  Increases the revision counter and dispatches a 'change' event.

#### dispatchEvent(event) inherited

src/ol/observable.js, line 75

  Dispatches an event and calls all listeners listening for events of this type. The event parameter can either be a string or an Object with a `type` property.

  Name | Type | Description
  --- | --- | ---
  `event` | Object | ol.events.Event | string | Event object.

#### get(key){*} inherited

src/ol/object.js, line 101

  Gets a value.

  Name | Type | Description
  --- | --- | ---
  `key` | string | Key name.

  ##### Returns:

  Value.

#### getAccuracy(){number|undefined}

src/ol/geolocation.js, line 187

  Get the accuracy of the position in meters.

  ##### Returns:

  The accuracy of the position measurement in meters.

#### getAccuracyGeometry(){ol.geom.Geometry}

src/ol/geolocation.js, line 199

  Get a geometry of the position accuracy.

  ##### Returns:

  A geometry of the position accuracy.

#### getAltitude(){number|undefined}

src/ol/geolocation.js, line 212

  Get the altitude associated with the position.

  ##### Returns:

  The altitude of the position in meters above mean sea level.

#### getAltitudeAccuracy(){number|undefined}

src/ol/geolocation.js, line 225

  Get the altitude accuracy of the position.

  ##### Returns:

  The accuracy of the altitude measurement in meters.

#### getHeading(){number|undefined}

src/ol/geolocation.js, line 237

  Get the heading as radians clockwise from North.

  ##### Returns:

  The heading of the device in radians from north.

#### getKeys(){Array.<string>} inherited

src/ol/object.js, line 115

  Get a list of object property names.

  ##### Returns:

  List of property names.

#### getPosition(){ol.Coordinate|undefined}

src/ol/geolocation.js, line 250

  Get the position of the device.

  ##### Returns:

  The current position of the device reported in the current projection.

#### getProjection(){ol.proj.Projection|undefined}

src/ol/geolocation.js, line 263

  Get the projection associated with the position.

  ##### Returns:

  The projection the position is reported in.

#### getProperties(){Object.<string, *>} inherited

src/ol/object.js, line 125

  Get an object of all property names and values.

  ##### Returns:

  Object.

#### getRevision(){number} inherited

src/ol/observable.js, line 84

  Get the version number for this object. Each time the object is modified, its version number will be incremented.

  ##### Returns:

  Revision.

#### getSpeed(){number|undefined}

src/ol/geolocation.js, line 276

  Get the speed in meters per second.

  ##### Returns:

  The instantaneous speed of the device in meters per second.

#### getTracking(){boolean}

src/ol/geolocation.js, line 288

  Determine if the device location is being tracked.

  ##### Returns:

  The device location is being tracked.

#### getTrackingOptions(){GeolocationPositionOptions|undefined}

src/ol/geolocation.js, line 303

  Get the tracking options.

  See:
    - http://www.w3.org/TR/geolocation-API/#position-options

  ##### Returns:

  PositionOptions as defined by the HTML5 Geolocation spec .

#### on(type, listener, opt_this){ol.EventsKey|Array.<ol.EventsKey>} inherited

src/ol/observable.js, line 99

  Listen for a certain type of event.

  Name | Type | Description
  --- | --- | ---
  `type` | string | Array.<string> | The event type or array of event types.
  `listener` | function | The listener function.
  `this` | Object | The object to use as `this` in `listener`.

  ##### Returns:

  Unique key for the listener. If called with an array of event types as the first argument, the return will be an array of keys.

#### once(type, listener, opt_this){ol.EventsKey|Array.<ol.EventsKey>} inherited

src/ol/observable.js, line 124

  Listen once for a certain type of event.

  Name | Type | Description
  --- | --- | ---
  `type` | string | Array.<string> | The event type or array of event types.
  `listener` | function | The listener function.
  `this` | Object | The object to use as `this` in `listener`.

  ##### Returns:

  Unique key for the listener. If called with an array of event types as the first argument, the return will be an array of keys.

#### set(key, value, opt_silent) inherited

src/ol/object.js, line 150

  Sets a value.

  Name | Type | Description
  --- | --- | ---
  `key` | string | Key name.
  `value` | * | Value.
  `silent` | boolean | Update without triggering an event.

#### setProjection(projection)

src/ol/geolocation.js, line 316

  Set the projection to use for transforming the coordinates.

  Name | Type | Description
  --- | --- | ---
  `projection` | ol.proj.Projection | The projection the position is reported in.

#### setProperties(values, opt_silent) inherited

src/ol/object.js, line 170

  Sets a collection of key-value pairs. Note that this changes any existing properties and adds new ones (it does not remove any existing properties).

  Name | Type | Description
  --- | --- | ---
  `values` | Object.<string, *> | Values.
  `silent` | boolean | Update without triggering an event.

#### setTracking(tracking)

src/ol/geolocation.js, line 327

  Enable or disable tracking.

  Name | Type | Description
  --- | --- | ---
  `tracking` | boolean | Enable tracking.

#### setTrackingOptions(options)

src/ol/geolocation.js, line 341

  Set the tracking options.

  Name | Type | Description
  --- | --- | ---
  `options` | GeolocationPositionOptions | PositionOptions as defined by the HTML5 Geolocation spec .

  See:
    - http://www.w3.org/TR/geolocation-API/#position-options

#### un(type, listener, opt_this) inherited

src/ol/observable.js, line 147

  Unlisten for a certain type of event.

  Name | Type | Description
  --- | --- | ---
  `type` | string | Array.<string> | The event type or array of event types.
  `listener` | function | The listener function.
  `this` | Object | The object which was used as `this` by the `listener`.

#### unset(key, opt_silent) inherited

src/ol/object.js, line 184

  Unsets a property.

  Name | Type | Description
  --- | --- | ---
  `key` | string | Key name.
  `silent` | boolean | Unset without triggering an event.