From 38f245c5c8ee25190c080a73370b880a439d4ceb Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Fri, 1 Feb 2013 13:53:55 +0100 Subject: [PATCH] Add projection property to ol.Geolocation --- src/ol/geolocation.js | 44 ++++++++++++++++++++++++++++++++++++++----- 1 file changed, 39 insertions(+), 5 deletions(-) diff --git a/src/ol/geolocation.js b/src/ol/geolocation.js index d432e45fbb..e3cca58e5b 100644 --- a/src/ol/geolocation.js +++ b/src/ol/geolocation.js @@ -13,7 +13,8 @@ goog.require('ol.Projection'); */ ol.GeolocationProperty = { ACCURACY: 'accuracy', - POSITION: 'position' + POSITION: 'position', + PROJECTION: 'projection' }; @@ -21,15 +22,14 @@ ol.GeolocationProperty = { /** * @constructor * @extends {ol.Object} - * @param {ol.Projection} projection Projection. * @param {GeolocationPositionOptions=} opt_positionOptions PositionOptions. */ -ol.Geolocation = function(projection, opt_positionOptions) { +ol.Geolocation = function(opt_positionOptions) { goog.base(this); - this.transformCoords_ = ol.Projection.getTransform( - ol.Projection.getFromCode('EPSG:4326'), projection); + // set the default projection + this.setProjection(ol.Projection.getFromCode('EPSG:4326')); /** * @private @@ -98,3 +98,37 @@ goog.exportProperty( ol.Geolocation.prototype, 'getAccuracy', ol.Geolocation.prototype.getAccuracy); + + +/** + * @return {ol.Projection} projection. + */ +ol.Geolocation.prototype.getProjection = function() { + return /** @type {ol.Projection} */ ( + this.get(ol.GeolocationProperty.PROJECTION)); +}; +goog.exportProperty( + ol.Geolocation.prototype, + 'getProjection', + ol.Geolocation.prototype.getProjection); + + +/** + * @param {ol.Projection} projection Projection. + */ +ol.Geolocation.prototype.setProjection = function(projection) { + this.set(ol.GeolocationProperty.PROJECTION, projection); + + this.transformCoords_ = ol.Projection.getTransform( + ol.Projection.getFromCode('EPSG:4326'), projection); +}; +goog.exportProperty( + ol.Geolocation.prototype, + 'setProjection', + ol.Geolocation.prototype.setProjection); + + +/** + * @private + */ +ol.Geolocation.prototype.transformCoords_ = goog.functions.identity;