Add a worldExtent to ol.proj.Projection

This commit is contained in:
Éric Lemoine
2014-07-11 22:18:01 +02:00
committed by Andreas Hocevar
parent 9de010c791
commit 9f19569144
4 changed files with 48 additions and 3 deletions
+9 -1
View File
@@ -293,7 +293,8 @@ olx.OverlayOptions.prototype.insertFirst;
* units: (ol.proj.Units|string),
* extent: (ol.Extent|undefined),
* axisOrientation: (string|undefined),
* global: (boolean|undefined)}}
* global: (boolean|undefined),
* worldExtent: (ol.Extent|undefined)}}
* @api
*/
olx.ProjectionOptions;
@@ -334,6 +335,13 @@ olx.ProjectionOptions.prototype.axisOrientation;
olx.ProjectionOptions.prototype.global;
/**
* The world extent for the SRS.
* @type {ol.Extent|undefined}
*/
olx.ProjectionOptions.prototype.worldExtent;
/**
* Object literal with config options for the view.
* @typedef {{center: (ol.Coordinate|undefined),
+9 -1
View File
@@ -23,7 +23,8 @@ ol.proj.EPSG3857_ = function(code) {
code: code,
units: ol.proj.Units.METERS,
extent: ol.proj.EPSG3857.EXTENT,
global: true
global: true,
worldExtent: ol.proj.EPSG3857.WORLD_EXTENT
});
};
goog.inherits(ol.proj.EPSG3857_, ol.proj.Projection);
@@ -61,6 +62,13 @@ ol.proj.EPSG3857.EXTENT = [
];
/**
* @const
* @type {ol.Extent}
*/
ol.proj.EPSG3857.WORLD_EXTENT = [-180, -85, 180, 85];
/**
* Lists several projection codes with the same meaning as EPSG:3857.
*
+2 -1
View File
@@ -26,7 +26,8 @@ ol.proj.EPSG4326_ = function(code, opt_axisOrientation) {
units: ol.proj.Units.DEGREES,
extent: ol.proj.EPSG4326.EXTENT,
axisOrientation: opt_axisOrientation,
global: true
global: true,
worldExtent: ol.proj.EPSG4326.EXTENT
});
};
goog.inherits(ol.proj.EPSG4326_, ol.proj.Projection);
+28
View File
@@ -86,6 +86,13 @@ ol.proj.Projection = function(options) {
*/
this.extent_ = goog.isDef(options.extent) ? options.extent : null;
/**
* @private
* @type {ol.Extent}
*/
this.worldExtent_ = goog.isDef(options.worldExtent) ?
options.worldExtent : null;
/**
* @private
* @type {string}
@@ -148,6 +155,16 @@ ol.proj.Projection.prototype.getMetersPerUnit = function() {
};
/**
* Get the world extent for this projection.
* @return {ol.Extent} Extent.
* @api
*/
ol.proj.Projection.prototype.getWorldExtent = function() {
return this.worldExtent_;
};
/**
* Get the axis orientation of this projection.
* Example values are:
@@ -198,6 +215,17 @@ ol.proj.Projection.prototype.setExtent = function(extent) {
};
/**
* Set the world extent for this projection.
* @param {ol.Extent} worldExtent World extent
* [minlon, minlat, maxlon, maxlat].
* @api
*/
ol.proj.Projection.prototype.setWorldExtent = function(worldExtent) {
this.worldExtent_ = worldExtent;
};
/**
* Get the resolution of the point in degrees. For projections with degrees as
* the unit this will simply return the provided resolution. For other