2017-05-22 22:22:50 +02:00
|
|
|
class Geolocation {
|
|
|
|
|
|
|
|
static currentPosition_testResponse() {
|
|
|
|
return {
|
|
|
|
mocked: false,
|
|
|
|
timestamp: (new Date()).getTime(),
|
|
|
|
coords: {
|
|
|
|
speed: 0,
|
|
|
|
heading: 0,
|
|
|
|
accuracy: 20,
|
|
|
|
longitude: -3.4596633911132812,
|
|
|
|
altitude: 0,
|
|
|
|
latitude: 48.73219093634444
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
static currentPosition(options = null) {
|
2017-06-11 23:11:14 +02:00
|
|
|
if (typeof navigator === 'undefined') {
|
|
|
|
// TODO
|
|
|
|
return Promise.resolve(this.currentPosition_testResponse());
|
|
|
|
}
|
|
|
|
|
2017-05-22 22:22:50 +02:00
|
|
|
if (!options) options = {};
|
|
|
|
if (!('enableHighAccuracy' in options)) options.enableHighAccuracy = true;
|
|
|
|
if (!('timeout' in options)) options.timeout = 10000;
|
|
|
|
|
|
|
|
return new Promise((resolve, reject) => {
|
|
|
|
navigator.geolocation.getCurrentPosition((data) => {
|
|
|
|
resolve(data);
|
|
|
|
}, (error) => {
|
|
|
|
rejec(error);
|
|
|
|
}, options);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
export { Geolocation };
|