Dispatch a GeolocationError in Geolocation

See https://github.com/openlayers/openlayers/pull/8657#discussion_r219051918
This commit is contained in:
Frederic Junod
2018-09-27 16:36:14 +02:00
parent 2d68f1506c
commit 39951a792d

View File

@@ -4,6 +4,7 @@
import GeolocationProperty from './GeolocationProperty.js';
import BaseObject, {getChangeEventType} from './Object.js';
import {listen} from './events.js';
import Event from './events/Event.js';
import EventType from './events/EventType.js';
import {circular as circularPolygon} from './geom/Polygon.js';
import {GEOLOCATION} from './has.js';
@@ -11,6 +12,30 @@ import {toRadians} from './math.js';
import {get as getProjection, getTransformFromProjections, identityTransform} from './proj.js';
/**
* @classdesc
* Events emitted on Geolocation error.
*/
class GeolocationError extends Event {
/**
* @param {PositionError} error error object.
*/
constructor(error) {
super(EventType.ERROR);
/**
* @type {number}
*/
this.code = error.code;
/**
* @type {string}
*/
this.message = error.message;
}
}
/**
* @typedef {Object} Options
* @property {boolean} [tracking=false] Start Tracking right after
@@ -174,12 +199,8 @@ class Geolocation extends BaseObject {
* @param {PositionError} error error object.
*/
positionError_(error) {
const event = {
type: EventType.ERROR,
target: undefined
};
this.setTracking(false);
this.dispatchEvent(event);
this.dispatchEvent(new GeolocationError(error));
}
/**