awesome-cordova-plugins/dist/plugins/geolocation.d.ts
2016-02-15 10:55:31 -06:00

121 lines
4.5 KiB
TypeScript

import { Observable } from 'rxjs/Observable';
export interface Coordinates {
/**
* a double representing the position's latitude in decimal degrees.
*/
latitude: number;
/**
* A double representing the position's longitude in decimal degrees.
*/
longitude: number;
/**
* A double representing the accuracy of the latitude and longitude properties,
* expressed in meters.
*/
accuracy: number;
/**
* A double representing the position's altitude in metres, relative to sea
* level. This value can be null if the implementation cannot provide the data.
*/
altitude: number;
/**
* A double representing the accuracy of the altitude expressed in meters.
* This value can be null.
*/
altitudeAccuracy: number;
/**
* A double representing the direction in which the device is traveling. This
* value, specified in degrees, indicates how far off from heading true north
* the device is. 0 degrees represents true north, and the direction is
* determined clockwise (which means that east is 90 degrees and west is 270
* degrees). If speed is 0, heading is NaN. If the device is unable to provide
* heading information, this value is null.
*/
heading: number;
/**
* A double representing the velocity of the device in meters per second.
* This value can be null.
*/
speed: number;
}
export interface Geoposition {
/**
* A Coordinates object defining the current location
*/
coords: Coordinates;
/**
* A timestamp representing the time at which the location was retrieved.
*/
timestamp: number;
}
export interface GeolocationOptions {
/**
* Is a positive long value indicating the maximum age in milliseconds of a
* possible cached position that is acceptable to return. If set to 0, it
* means that the device cannot use a cached position and must attempt to
* retrieve the real current position. If set to Infinity the device must
* return a cached position regardless of its age. Default: 0.
*/
maximumAge: number;
/**
* Is a positive long value representing the maximum length of time
* (in milliseconds) the device is allowed to take in order to return a
* position. The default value is Infinity, meaning that getCurrentPosition()
* won't return until the position is available.
*/
timeout: number;
/**
* Indicates the application would like to receive the best possible results.
* If true and if the device is able to provide a more accurate position, it
* will do so. Note that this can result in slower response times or increased
* power consumption (with a GPS chip on a mobile device for example). On the
* other hand, if false, the device can take the liberty to save resources by
* responding more quickly and/or using less power. Default: false.
* @type {boolean}
*/
enableHighAccuracy: boolean;
}
/**
* Get geolocation data.
*
* @usage
* ```js
* Geolocation.getCurrentPosition().then((resp) => {
* //resp.coords.latitude
* //resp.coords.longitude
* })
*
* let watch = Geolocation.watchPosition();
* watch.subscribe((data) => {
* //data.coords.latitude
* //data.coords.longitude
* })
* ```
*/
export declare class Geolocation {
/**
* Get the device's current position.
*
* @param {GeolocationOptions} options The [geolocation options](https://developer.mozilla.org/en-US/docs/Web/API/PositionOptions).
* @return Returns a Promise that resolves with the [position](https://developer.mozilla.org/en-US/docs/Web/API/Position) of the device, or rejects with an error.
*/
static getCurrentPosition(options: GeolocationOptions): Promise<Geoposition>;
/**
* Watch the current device's position. Clear the watch by unsubscribing from
* Observable changes.
*
* ```
* var subscription = Geolocation.watchPosition().subscribe(position => {
* console.log(position.coords.longitude + ' ' + position.coords.latitude);
* });
*
* // To stop notifications
* subscription.unsubscribe();
* ```
*
* @param {GeolocationOptions} options The [geolocation options](https://developer.mozilla.org/en-US/docs/Web/API/PositionOptions).
* @return Returns an Observable that notifies with the [position](https://developer.mozilla.org/en-US/docs/Web/API/Position) of the device, or errors.
*/
static watchPosition(options: GeolocationOptions): Observable<Geoposition>;
}