Separate ol.projection module from ol.Projection class

This commit is contained in:
Tom Payne
2013-03-03 13:09:13 +01:00
parent 3e420313a2
commit fcc620af7d
28 changed files with 165 additions and 149 deletions

View File

@@ -5,10 +5,10 @@ goog.require('ol.AnchoredElement');
goog.require('ol.Collection'); goog.require('ol.Collection');
goog.require('ol.Coordinate'); goog.require('ol.Coordinate');
goog.require('ol.Map'); goog.require('ol.Map');
goog.require('ol.Projection');
goog.require('ol.RendererHints'); goog.require('ol.RendererHints');
goog.require('ol.View2D'); goog.require('ol.View2D');
goog.require('ol.layer.TileLayer'); goog.require('ol.layer.TileLayer');
goog.require('ol.projection');
goog.require('ol.source.MapQuestOpenAerial'); goog.require('ol.source.MapQuestOpenAerial');
@@ -35,7 +35,7 @@ var map = new ol.Map({
// Vienna label // Vienna label
var vienna = new ol.AnchoredElement({ var vienna = new ol.AnchoredElement({
map: map, map: map,
position: ol.Projection.transformWithCodes( position: ol.projection.transformWithCodes(
new ol.Coordinate(16.3725, 48.208889), 'EPSG:4326', 'EPSG:3857'), new ol.Coordinate(16.3725, 48.208889), 'EPSG:4326', 'EPSG:3857'),
element: document.getElementById('vienna') element: document.getElementById('vienna')
}); });
@@ -49,7 +49,7 @@ map.addEventListener('click', function(evt) {
var coordinate = evt.getCoordinate(); var coordinate = evt.getCoordinate();
popup.getElement().innerHTML = popup.getElement().innerHTML =
'Welcome to ol3. The location you clicked was<br>' + 'Welcome to ol3. The location you clicked was<br>' +
ol.Coordinate.toStringHDMS(ol.Projection.transformWithCodes( ol.Coordinate.toStringHDMS(ol.projection.transformWithCodes(
coordinate, 'EPSG:3857', 'EPSG:4326')); coordinate, 'EPSG:3857', 'EPSG:4326'));
popup.setPosition(coordinate); popup.setPosition(coordinate);
}); });

View File

@@ -1,10 +1,10 @@
goog.require('ol.Collection'); goog.require('ol.Collection');
goog.require('ol.Coordinate'); goog.require('ol.Coordinate');
goog.require('ol.Map'); goog.require('ol.Map');
goog.require('ol.Projection');
goog.require('ol.RendererHint'); goog.require('ol.RendererHint');
goog.require('ol.View2D'); goog.require('ol.View2D');
goog.require('ol.layer.TileLayer'); goog.require('ol.layer.TileLayer');
goog.require('ol.projection');
goog.require('ol.source.DebugTileSource'); goog.require('ol.source.DebugTileSource');
goog.require('ol.source.OpenStreetMap'); goog.require('ol.source.OpenStreetMap');
goog.require('ol.tilegrid.XYZ'); goog.require('ol.tilegrid.XYZ');
@@ -16,7 +16,7 @@ var layers = new ol.Collection([
}), }),
new ol.layer.TileLayer({ new ol.layer.TileLayer({
source: new ol.source.DebugTileSource({ source: new ol.source.DebugTileSource({
projection: ol.Projection.getFromCode('EPSG:3857'), projection: ol.projection.getFromCode('EPSG:3857'),
tileGrid: new ol.tilegrid.XYZ({ tileGrid: new ol.tilegrid.XYZ({
maxZoom: 22 maxZoom: 22
}) })
@@ -26,7 +26,7 @@ var layers = new ol.Collection([
var webglMap = new ol.Map({ var webglMap = new ol.Map({
view: new ol.View2D({ view: new ol.View2D({
center: ol.Projection.transformWithCodes( center: ol.projection.transformWithCodes(
new ol.Coordinate(-0.1275, 51.507222), 'EPSG:4326', 'EPSG:3857'), new ol.Coordinate(-0.1275, 51.507222), 'EPSG:4326', 'EPSG:3857'),
zoom: 10 zoom: 10
}), }),

View File

@@ -4,10 +4,10 @@ goog.require('goog.debug.Logger.Level');
goog.require('ol.Collection'); goog.require('ol.Collection');
goog.require('ol.Coordinate'); goog.require('ol.Coordinate');
goog.require('ol.Map'); goog.require('ol.Map');
goog.require('ol.Projection');
goog.require('ol.RendererHint'); goog.require('ol.RendererHint');
goog.require('ol.View2D'); goog.require('ol.View2D');
goog.require('ol.layer.TileLayer'); goog.require('ol.layer.TileLayer');
goog.require('ol.projection');
goog.require('ol.source.TiledWMS'); goog.require('ol.source.TiledWMS');
@@ -16,7 +16,7 @@ if (goog.DEBUG) {
goog.debug.Logger.getLogger('ol').setLevel(goog.debug.Logger.Level.INFO); goog.debug.Logger.getLogger('ol').setLevel(goog.debug.Logger.Level.INFO);
} }
var epsg4326 = ol.Projection.getFromCode('EPSG:4326'); var epsg4326 = ol.projection.getFromCode('EPSG:4326');
// We give the single image source a set of resolutions. This prevents the // We give the single image source a set of resolutions. This prevents the
// source from requesting images of arbitrary resolutions. // source from requesting images of arbitrary resolutions.

View File

@@ -4,7 +4,6 @@ goog.require('goog.debug.Logger.Level');
goog.require('ol.Collection'); goog.require('ol.Collection');
goog.require('ol.Coordinate'); goog.require('ol.Coordinate');
goog.require('ol.Map'); goog.require('ol.Map');
goog.require('ol.Projection');
goog.require('ol.RendererHint'); goog.require('ol.RendererHint');
goog.require('ol.View2D'); goog.require('ol.View2D');
goog.require('ol.animation'); goog.require('ol.animation');
@@ -12,6 +11,7 @@ goog.require('ol.control.MousePosition');
goog.require('ol.easing'); goog.require('ol.easing');
goog.require('ol.interaction.Keyboard'); goog.require('ol.interaction.Keyboard');
goog.require('ol.layer.TileLayer'); goog.require('ol.layer.TileLayer');
goog.require('ol.projection');
goog.require('ol.source.MapQuestOpenAerial'); goog.require('ol.source.MapQuestOpenAerial');
@@ -21,9 +21,9 @@ if (goog.DEBUG) {
} }
var LONDON = ol.Projection.transformWithCodes( var LONDON = ol.projection.transformWithCodes(
new ol.Coordinate(-0.12755, 51.507222), 'EPSG:4326', 'EPSG:3857'); new ol.Coordinate(-0.12755, 51.507222), 'EPSG:4326', 'EPSG:3857');
var MOSCOW = ol.Projection.transformWithCodes( var MOSCOW = ol.projection.transformWithCodes(
new ol.Coordinate(37.6178, 55.7517), 'EPSG:4326', 'EPSG:3857'); new ol.Coordinate(37.6178, 55.7517), 'EPSG:4326', 'EPSG:3857');
var layer = new ol.layer.TileLayer({ var layer = new ol.layer.TileLayer({
@@ -44,7 +44,7 @@ var domMap = new ol.Map({
var domMousePosition = new ol.control.MousePosition({ var domMousePosition = new ol.control.MousePosition({
coordinateFormat: ol.Coordinate.toStringHDMS, coordinateFormat: ol.Coordinate.toStringHDMS,
projection: ol.Projection.getFromCode('EPSG:4326'), projection: ol.projection.getFromCode('EPSG:4326'),
target: document.getElementById('domMousePosition'), target: document.getElementById('domMousePosition'),
undefinedHTML: '&nbsp;' undefinedHTML: '&nbsp;'
}); });
@@ -61,7 +61,7 @@ if (webglMap !== null) {
var webglMousePosition = new ol.control.MousePosition({ var webglMousePosition = new ol.control.MousePosition({
coordinateFormat: ol.Coordinate.toStringHDMS, coordinateFormat: ol.Coordinate.toStringHDMS,
projection: ol.Projection.getFromCode('EPSG:4326'), projection: ol.projection.getFromCode('EPSG:4326'),
target: document.getElementById('webglMousePosition'), target: document.getElementById('webglMousePosition'),
undefinedHTML: '&nbsp;' undefinedHTML: '&nbsp;'
}); });
@@ -78,7 +78,7 @@ if (canvasMap !== null) {
var canvasMousePosition = new ol.control.MousePosition({ var canvasMousePosition = new ol.control.MousePosition({
coordinateFormat: ol.Coordinate.toStringHDMS, coordinateFormat: ol.Coordinate.toStringHDMS,
projection: ol.Projection.getFromCode('EPSG:4326'), projection: ol.projection.getFromCode('EPSG:4326'),
target: document.getElementById('canvasMousePosition'), target: document.getElementById('canvasMousePosition'),
undefinedHtml: '&nbsp;' undefinedHtml: '&nbsp;'
}); });

View File

@@ -2,10 +2,10 @@ goog.require('ol.BingMapsStyle');
goog.require('ol.Collection'); goog.require('ol.Collection');
goog.require('ol.Coordinate'); goog.require('ol.Coordinate');
goog.require('ol.Map'); goog.require('ol.Map');
goog.require('ol.Projection');
goog.require('ol.RendererHint'); goog.require('ol.RendererHint');
goog.require('ol.View2D'); goog.require('ol.View2D');
goog.require('ol.layer.TileLayer'); goog.require('ol.layer.TileLayer');
goog.require('ol.projection');
goog.require('ol.source.BingMaps'); goog.require('ol.source.BingMaps');
goog.require('ol.source.TileJSON'); goog.require('ol.source.TileJSON');
@@ -29,7 +29,7 @@ var webglMap = new ol.Map({
renderer: ol.RendererHint.WEBGL, renderer: ol.RendererHint.WEBGL,
target: 'webglMap', target: 'webglMap',
view: new ol.View2D({ view: new ol.View2D({
center: ol.Projection.transformWithCodes( center: ol.projection.transformWithCodes(
new ol.Coordinate(-77.93255, 37.9555), 'EPSG:4326', 'EPSG:3857'), new ol.Coordinate(-77.93255, 37.9555), 'EPSG:4326', 'EPSG:3857'),
zoom: 5 zoom: 5
}) })

View File

@@ -12,6 +12,7 @@ goog.require('ol.RendererHints');
goog.require('ol.View2D'); goog.require('ol.View2D');
goog.require('ol.layer.ImageLayer'); goog.require('ol.layer.ImageLayer');
goog.require('ol.layer.TileLayer'); goog.require('ol.layer.TileLayer');
goog.require('ol.projection');
goog.require('ol.source.SingleImageWMS'); goog.require('ol.source.SingleImageWMS');
goog.require('ol.source.TiledWMS'); goog.require('ol.source.TiledWMS');
@@ -24,7 +25,7 @@ if (goog.DEBUG) {
var epsg21781 = new ol.Projection('EPSG:21781', ol.ProjectionUnits.METERS, var epsg21781 = new ol.Projection('EPSG:21781', ol.ProjectionUnits.METERS,
// Validity extent from http://spatialreference.org // Validity extent from http://spatialreference.org
new ol.Extent(485869.5728, 76443.1884, 837076.5648, 299941.7864)); new ol.Extent(485869.5728, 76443.1884, 837076.5648, 299941.7864));
ol.Projection.addProjection(epsg21781); ol.projection.addProjection(epsg21781);
// We give the single image source a set of resolutions. This prevents the // We give the single image source a set of resolutions. This prevents the
// source from requesting images of arbitrary resolutions. // source from requesting images of arbitrary resolutions.

View File

@@ -15,6 +15,7 @@ goog.require('ol.Pixel');
goog.require('ol.Projection'); goog.require('ol.Projection');
goog.require('ol.TransformFunction'); goog.require('ol.TransformFunction');
goog.require('ol.control.Control'); goog.require('ol.control.Control');
goog.require('ol.projection');
@@ -71,7 +72,7 @@ ol.control.MousePosition = function(mousePositionOptions) {
* @private * @private
* @type {ol.TransformFunction} * @type {ol.TransformFunction}
*/ */
this.transform_ = ol.Projection.identityTransform; this.transform_ = ol.projection.identityTransform;
/** /**
* @private * @private
@@ -166,10 +167,10 @@ ol.control.MousePosition.prototype.updateHTML_ = function(pixel) {
if (!goog.isNull(pixel)) { if (!goog.isNull(pixel)) {
if (this.renderedProjection_ != this.mapProjection_) { if (this.renderedProjection_ != this.mapProjection_) {
if (goog.isDef(this.projection_)) { if (goog.isDef(this.projection_)) {
this.transform_ = ol.Projection.getTransform( this.transform_ = ol.projection.getTransform(
this.mapProjection_, this.projection_); this.mapProjection_, this.projection_);
} else { } else {
this.transform_ = ol.Projection.identityTransform; this.transform_ = ol.projection.identityTransform;
} }
this.renderedProjection_ = this.mapProjection_; this.renderedProjection_ = this.mapProjection_;
} }

View File

@@ -9,6 +9,7 @@ goog.require('goog.math');
goog.require('ol.Coordinate'); goog.require('ol.Coordinate');
goog.require('ol.Object'); goog.require('ol.Object');
goog.require('ol.Projection'); goog.require('ol.Projection');
goog.require('ol.projection');
/** /**
@@ -75,8 +76,8 @@ ol.Geolocation.prototype.disposeInternal = function() {
ol.Geolocation.prototype.handleProjectionChanged_ = function() { ol.Geolocation.prototype.handleProjectionChanged_ = function() {
var projection = this.getProjection(); var projection = this.getProjection();
if (goog.isDefAndNotNull(projection)) { if (goog.isDefAndNotNull(projection)) {
this.transformCoords_ = ol.Projection.getTransform( this.transformCoords_ = ol.projection.getTransform(
ol.Projection.getFromCode('EPSG:4326'), projection); ol.projection.getFromCode('EPSG:4326'), projection);
if (!goog.isNull(this.position_)) { if (!goog.isNull(this.position_)) {
this.set(ol.GeolocationProperty.POSITION, this.set(ol.GeolocationProperty.POSITION,
this.transformCoords_(this.position_)); this.transformCoords_(this.position_));

View File

@@ -58,6 +58,7 @@ goog.require('ol.interaction.TouchPan');
goog.require('ol.interaction.TouchRotateAndZoom'); goog.require('ol.interaction.TouchRotateAndZoom');
goog.require('ol.interaction.condition'); goog.require('ol.interaction.condition');
goog.require('ol.layer.Layer'); goog.require('ol.layer.Layer');
goog.require('ol.projection');
goog.require('ol.projection.addCommonProjections'); goog.require('ol.projection.addCommonProjections');
goog.require('ol.renderer.Map'); goog.require('ol.renderer.Map');
goog.require('ol.renderer.canvas.Map'); goog.require('ol.renderer.canvas.Map');

View File

@@ -1,9 +1,9 @@
goog.provide('ol.parser.ogc.WMTSCapabilities_v1_0_0'); goog.provide('ol.parser.ogc.WMTSCapabilities_v1_0_0');
goog.require('goog.dom.xml'); goog.require('goog.dom.xml');
goog.require('ol.Coordinate'); goog.require('ol.Coordinate');
goog.require('ol.Projection');
goog.require('ol.parser.XML'); goog.require('ol.parser.XML');
goog.require('ol.parser.ogc.OWSCommon_v1_1_0'); goog.require('ol.parser.ogc.OWSCommon_v1_1_0');
goog.require('ol.projection');
@@ -77,7 +77,7 @@ ol.parser.ogc.WMTSCapabilities_v1_0_0 = function() {
var topLeftCorner = this.getChildValue(node); var topLeftCorner = this.getChildValue(node);
var coords = topLeftCorner.split(' '); var coords = topLeftCorner.split(' ');
var axisOrientation = var axisOrientation =
ol.Projection.getFromCode(obj['supportedCRS']).getAxisOrientation(); ol.projection.getFromCode(obj['supportedCRS']).getAxisOrientation();
obj['topLeftCorner'] = ol.Coordinate.fromProjectedArray( obj['topLeftCorner'] = ol.Coordinate.fromProjectedArray(
[parseFloat(coords[0]), parseFloat(coords[1])], axisOrientation); [parseFloat(coords[0]), parseFloat(coords[1])], axisOrientation);
}, },

View File

@@ -1,10 +1,4 @@
@exportSymbol ol.Projection @exportSymbol ol.Projection
@exportProperty ol.Projection.addProjection
@exportProperty ol.Projection.getFromCode
@exportProperty ol.Projection.getTransform
@exportProperty ol.Projection.getTransformFromCodes
@exportProperty ol.Projection.transform
@exportProperty ol.Projection.transformWithCodes
@exportProperty ol.Projection.prototype.getAxisOrientation @exportProperty ol.Projection.prototype.getAxisOrientation
@exportProperty ol.Projection.prototype.getCode @exportProperty ol.Projection.prototype.getCode
@exportProperty ol.Projection.prototype.getExtent @exportProperty ol.Projection.prototype.getExtent
@@ -13,3 +7,10 @@
@exportSymbol ol.ProjectionUnits @exportSymbol ol.ProjectionUnits
@exportProperty ol.ProjectionUnits.DEGREES @exportProperty ol.ProjectionUnits.DEGREES
@exportProperty ol.ProjectionUnits.METERS @exportProperty ol.ProjectionUnits.METERS
@exportSymbol ol.projection.addProjection
@exportSymbol ol.projection.getFromCode
@exportSymbol ol.projection.getTransform
@exportSymbol ol.projection.getTransformFromCodes
@exportSymbol ol.projection.transform
@exportSymbol ol.projection.transformWithCodes

View File

@@ -1,5 +1,6 @@
goog.provide('ol.Projection'); goog.provide('ol.Projection');
goog.provide('ol.ProjectionUnits'); goog.provide('ol.ProjectionUnits');
goog.provide('ol.projection');
goog.require('goog.array'); goog.require('goog.array');
goog.require('goog.asserts'); goog.require('goog.asserts');
@@ -135,21 +136,21 @@ ol.Proj4jsProjection.prototype.getProj4jsProj = function() {
* @private * @private
* @type {Object.<string, ol.Proj4jsProjection>} * @type {Object.<string, ol.Proj4jsProjection>}
*/ */
ol.Projection.proj4jsProjections_ = {}; ol.projection.proj4jsProjections_ = {};
/** /**
* @private * @private
* @type {Object.<string, ol.Projection>} * @type {Object.<string, ol.Projection>}
*/ */
ol.Projection.projections_ = {}; ol.projection.projections_ = {};
/** /**
* @private * @private
* @type {Object.<string, Object.<string, ol.TransformFunction>>} * @type {Object.<string, Object.<string, ol.TransformFunction>>}
*/ */
ol.Projection.transforms_ = {}; ol.projection.transforms_ = {};
/** /**
@@ -158,13 +159,13 @@ ol.Projection.transforms_ = {};
* *
* @param {Array.<ol.Projection>} projections Projections. * @param {Array.<ol.Projection>} projections Projections.
*/ */
ol.Projection.addEquivalentProjections = function(projections) { ol.projection.addEquivalentProjections = function(projections) {
ol.Projection.addProjections(projections); ol.projection.addProjections(projections);
goog.array.forEach(projections, function(source) { goog.array.forEach(projections, function(source) {
goog.array.forEach(projections, function(destination) { goog.array.forEach(projections, function(destination) {
if (source !== destination) { if (source !== destination) {
ol.Projection.addTransform( ol.projection.addTransform(
source, destination, ol.Projection.cloneTransform); source, destination, ol.projection.cloneTransform);
} }
}); });
}); });
@@ -182,12 +183,12 @@ ol.Projection.addEquivalentProjections = function(projections) {
* @param {ol.TransformFunction} inverseTransform Transform from any projection * @param {ol.TransformFunction} inverseTransform Transform from any projection
* in projection2 to any projection in projection1.. * in projection2 to any projection in projection1..
*/ */
ol.Projection.addEquivalentTransforms = ol.projection.addEquivalentTransforms =
function(projections1, projections2, forwardTransform, inverseTransform) { function(projections1, projections2, forwardTransform, inverseTransform) {
goog.array.forEach(projections1, function(projection1) { goog.array.forEach(projections1, function(projection1) {
goog.array.forEach(projections2, function(projection2) { goog.array.forEach(projections2, function(projection2) {
ol.Projection.addTransform(projection1, projection2, forwardTransform); ol.projection.addTransform(projection1, projection2, forwardTransform);
ol.Projection.addTransform(projection2, projection1, inverseTransform); ol.projection.addTransform(projection2, projection1, inverseTransform);
}); });
}); });
}; };
@@ -196,8 +197,8 @@ ol.Projection.addEquivalentTransforms =
/** /**
* @param {ol.Proj4jsProjection} proj4jsProjection Proj4js projection. * @param {ol.Proj4jsProjection} proj4jsProjection Proj4js projection.
*/ */
ol.Projection.addProj4jsProjection = function(proj4jsProjection) { ol.projection.addProj4jsProjection = function(proj4jsProjection) {
var proj4jsProjections = ol.Projection.proj4jsProjections_; var proj4jsProjections = ol.projection.proj4jsProjections_;
var code = proj4jsProjection.getCode(); var code = proj4jsProjection.getCode();
goog.asserts.assert(!goog.object.containsKey(proj4jsProjections, code)); goog.asserts.assert(!goog.object.containsKey(proj4jsProjections, code));
proj4jsProjections[code] = proj4jsProjection; proj4jsProjections[code] = proj4jsProjection;
@@ -207,22 +208,22 @@ ol.Projection.addProj4jsProjection = function(proj4jsProjection) {
/** /**
* @param {ol.Projection} projection Projection. * @param {ol.Projection} projection Projection.
*/ */
ol.Projection.addProjection = function(projection) { ol.projection.addProjection = function(projection) {
var projections = ol.Projection.projections_; var projections = ol.projection.projections_;
var code = projection.getCode(); var code = projection.getCode();
goog.asserts.assert(!goog.object.containsKey(projections, code)); goog.asserts.assert(!goog.object.containsKey(projections, code));
projections[code] = projection; projections[code] = projection;
ol.Projection.addTransform( ol.projection.addTransform(
projection, projection, ol.Projection.cloneTransform); projection, projection, ol.projection.cloneTransform);
}; };
/** /**
* @param {Array.<ol.Projection>} projections Projections. * @param {Array.<ol.Projection>} projections Projections.
*/ */
ol.Projection.addProjections = function(projections) { ol.projection.addProjections = function(projections) {
goog.array.forEach(projections, function(projection) { goog.array.forEach(projections, function(projection) {
ol.Projection.addProjection(projection); ol.projection.addProjection(projection);
}); });
}; };
@@ -230,12 +231,12 @@ ol.Projection.addProjections = function(projections) {
/** /**
* FIXME empty description for jsdoc * FIXME empty description for jsdoc
*/ */
ol.Projection.clearAllProjections = function() { ol.projection.clearAllProjections = function() {
if (ol.ENABLE_PROJ4JS) { if (ol.ENABLE_PROJ4JS) {
ol.Projection.proj4jsProjections_ = {}; ol.projection.proj4jsProjections_ = {};
} }
ol.Projection.projections_ = {}; ol.projection.projections_ = {};
ol.Projection.transforms_ = {}; ol.projection.transforms_ = {};
}; };
@@ -244,11 +245,11 @@ ol.Projection.clearAllProjections = function() {
* @param {string} defaultCode Default code. * @param {string} defaultCode Default code.
* @return {ol.Projection} Projection. * @return {ol.Projection} Projection.
*/ */
ol.Projection.createProjection = function(projection, defaultCode) { ol.projection.createProjection = function(projection, defaultCode) {
if (!goog.isDefAndNotNull(projection)) { if (!goog.isDefAndNotNull(projection)) {
return ol.Projection.getFromCode(defaultCode); return ol.projection.getFromCode(defaultCode);
} else if (goog.isString(projection)) { } else if (goog.isString(projection)) {
return ol.Projection.getFromCode(projection); return ol.projection.getFromCode(projection);
} else { } else {
goog.asserts.assert(projection instanceof ol.Projection); goog.asserts.assert(projection instanceof ol.Projection);
return projection; return projection;
@@ -264,10 +265,10 @@ ol.Projection.createProjection = function(projection, defaultCode) {
* @param {ol.Projection} destination Destination. * @param {ol.Projection} destination Destination.
* @param {ol.TransformFunction} transformFn Transform. * @param {ol.TransformFunction} transformFn Transform.
*/ */
ol.Projection.addTransform = function(source, destination, transformFn) { ol.projection.addTransform = function(source, destination, transformFn) {
var sourceCode = source.getCode(); var sourceCode = source.getCode();
var destinationCode = destination.getCode(); var destinationCode = destination.getCode();
var transforms = ol.Projection.transforms_; var transforms = ol.projection.transforms_;
if (!goog.object.containsKey(transforms, sourceCode)) { if (!goog.object.containsKey(transforms, sourceCode)) {
transforms[sourceCode] = {}; transforms[sourceCode] = {};
} }
@@ -286,10 +287,10 @@ ol.Projection.addTransform = function(source, destination, transformFn) {
* @param {ol.Projection} destination Destination projection. * @param {ol.Projection} destination Destination projection.
* @return {ol.TransformFunction} transformFn The unregistered transform. * @return {ol.TransformFunction} transformFn The unregistered transform.
*/ */
ol.Projection.removeTransform = function(source, destination) { ol.projection.removeTransform = function(source, destination) {
var sourceCode = source.getCode(); var sourceCode = source.getCode();
var destinationCode = destination.getCode(); var destinationCode = destination.getCode();
var transforms = ol.Projection.transforms_; var transforms = ol.projection.transforms_;
goog.asserts.assert(sourceCode in transforms); goog.asserts.assert(sourceCode in transforms);
goog.asserts.assert(destinationCode in transforms[sourceCode]); goog.asserts.assert(destinationCode in transforms[sourceCode]);
var transform = transforms[sourceCode][destinationCode]; var transform = transforms[sourceCode][destinationCode];
@@ -307,10 +308,10 @@ ol.Projection.removeTransform = function(source, destination) {
* such as “EPSG:4326”. * such as “EPSG:4326”.
* @return {ol.Projection} Projection. * @return {ol.Projection} Projection.
*/ */
ol.Projection.getFromCode = function(code) { ol.projection.getFromCode = function(code) {
var projection = ol.Projection.projections_[code]; var projection = ol.projection.projections_[code];
if (ol.HAVE_PROJ4JS && !goog.isDef(projection)) { if (ol.HAVE_PROJ4JS && !goog.isDef(projection)) {
projection = ol.Projection.getProj4jsProjectionFromCode_(code); projection = ol.projection.getProj4jsProjectionFromCode_(code);
} }
if (!goog.isDef(projection)) { if (!goog.isDef(projection)) {
goog.asserts.assert(goog.isDef(projection)); goog.asserts.assert(goog.isDef(projection));
@@ -325,8 +326,8 @@ ol.Projection.getFromCode = function(code) {
* @private * @private
* @return {ol.Proj4jsProjection} Proj4js projection. * @return {ol.Proj4jsProjection} Proj4js projection.
*/ */
ol.Projection.getProj4jsProjectionFromCode_ = function(code) { ol.projection.getProj4jsProjectionFromCode_ = function(code) {
var proj4jsProjections = ol.Projection.proj4jsProjections_; var proj4jsProjections = ol.projection.proj4jsProjections_;
var proj4jsProjection = proj4jsProjections[code]; var proj4jsProjection = proj4jsProjections[code];
if (!goog.isDef(proj4jsProjection)) { if (!goog.isDef(proj4jsProjection)) {
var proj4jsProj = new Proj4js.Proj(code); var proj4jsProj = new Proj4js.Proj(code);
@@ -346,14 +347,14 @@ ol.Projection.getProj4jsProjectionFromCode_ = function(code) {
* @param {ol.Projection} projection2 Projection 2. * @param {ol.Projection} projection2 Projection 2.
* @return {boolean} Equivalent. * @return {boolean} Equivalent.
*/ */
ol.Projection.equivalent = function(projection1, projection2) { ol.projection.equivalent = function(projection1, projection2) {
if (projection1 === projection2) { if (projection1 === projection2) {
return true; return true;
} else if (projection1.getUnits() != projection2.getUnits()) { } else if (projection1.getUnits() != projection2.getUnits()) {
return false; return false;
} else { } else {
var transformFn = ol.Projection.getTransform(projection1, projection2); var transformFn = ol.projection.getTransform(projection1, projection2);
return transformFn === ol.Projection.cloneTransform; return transformFn === ol.projection.cloneTransform;
} }
}; };
@@ -366,8 +367,8 @@ ol.Projection.equivalent = function(projection1, projection2) {
* @param {ol.Projection} destination Destination. * @param {ol.Projection} destination Destination.
* @return {ol.TransformFunction} Transform. * @return {ol.TransformFunction} Transform.
*/ */
ol.Projection.getTransform = function(source, destination) { ol.projection.getTransform = function(source, destination) {
var transforms = ol.Projection.transforms_; var transforms = ol.projection.transforms_;
var sourceCode = source.getCode(); var sourceCode = source.getCode();
var destinationCode = destination.getCode(); var destinationCode = destination.getCode();
var transform; var transform;
@@ -381,7 +382,7 @@ ol.Projection.getTransform = function(source, destination) {
proj4jsSource = source; proj4jsSource = source;
} else { } else {
proj4jsSource = proj4jsSource =
ol.Projection.getProj4jsProjectionFromCode_(source.getCode()); ol.projection.getProj4jsProjectionFromCode_(source.getCode());
} }
var sourceProj4jsProj = proj4jsSource.getProj4jsProj(); var sourceProj4jsProj = proj4jsSource.getProj4jsProj();
var proj4jsDestination; var proj4jsDestination;
@@ -389,7 +390,7 @@ ol.Projection.getTransform = function(source, destination) {
proj4jsDestination = destination; proj4jsDestination = destination;
} else { } else {
proj4jsDestination = proj4jsDestination =
ol.Projection.getProj4jsProjectionFromCode_(destination.getCode()); ol.projection.getProj4jsProjectionFromCode_(destination.getCode());
} }
var destinationProj4jsProj = proj4jsDestination.getProj4jsProj(); var destinationProj4jsProj = proj4jsDestination.getProj4jsProj();
transform = transform =
@@ -403,11 +404,11 @@ ol.Projection.getTransform = function(source, destination) {
sourceProj4jsProj, destinationProj4jsProj, proj4jsPoint); sourceProj4jsProj, destinationProj4jsProj, proj4jsPoint);
return new ol.Coordinate(proj4jsPoint.x, proj4jsPoint.y); return new ol.Coordinate(proj4jsPoint.x, proj4jsPoint.y);
}; };
ol.Projection.addTransform(source, destination, transform); ol.projection.addTransform(source, destination, transform);
} }
if (!goog.isDef(transform)) { if (!goog.isDef(transform)) {
goog.asserts.assert(goog.isDef(transform)); goog.asserts.assert(goog.isDef(transform));
transform = ol.Projection.identityTransform; transform = ol.projection.identityTransform;
} }
return transform; return transform;
}; };
@@ -422,10 +423,10 @@ ol.Projection.getTransform = function(source, destination) {
* @param {string} destinationCode Destination code. * @param {string} destinationCode Destination code.
* @return {ol.TransformFunction} Transform. * @return {ol.TransformFunction} Transform.
*/ */
ol.Projection.getTransformFromCodes = function(sourceCode, destinationCode) { ol.projection.getTransformFromCodes = function(sourceCode, destinationCode) {
var source = ol.Projection.getFromCode(sourceCode); var source = ol.projection.getFromCode(sourceCode);
var destination = ol.Projection.getFromCode(destinationCode); var destination = ol.projection.getFromCode(destinationCode);
return ol.Projection.getTransform(source, destination); return ol.projection.getTransform(source, destination);
}; };
@@ -433,7 +434,7 @@ ol.Projection.getTransformFromCodes = function(sourceCode, destinationCode) {
* @param {ol.Coordinate} point Point. * @param {ol.Coordinate} point Point.
* @return {ol.Coordinate} Unaltered point (same reference). * @return {ol.Coordinate} Unaltered point (same reference).
*/ */
ol.Projection.identityTransform = function(point) { ol.projection.identityTransform = function(point) {
return point; return point;
}; };
@@ -442,7 +443,7 @@ ol.Projection.identityTransform = function(point) {
* @param {ol.Coordinate} point Point. * @param {ol.Coordinate} point Point.
* @return {ol.Coordinate} Equal point (different reference). * @return {ol.Coordinate} Equal point (different reference).
*/ */
ol.Projection.cloneTransform = function(point) { ol.projection.cloneTransform = function(point) {
return new ol.Coordinate(point.x, point.y); return new ol.Coordinate(point.x, point.y);
}; };
@@ -455,8 +456,8 @@ ol.Projection.cloneTransform = function(point) {
* @param {ol.Projection} destination Destination. * @param {ol.Projection} destination Destination.
* @return {ol.Coordinate} Point. * @return {ol.Coordinate} Point.
*/ */
ol.Projection.transform = function(point, source, destination) { ol.projection.transform = function(point, source, destination) {
var transformFn = ol.Projection.getTransform(source, destination); var transformFn = ol.projection.getTransform(source, destination);
return transformFn(point); return transformFn(point);
}; };
@@ -467,9 +468,9 @@ ol.Projection.transform = function(point, source, destination) {
* @param {string} destinationCode Destination code. * @param {string} destinationCode Destination code.
* @return {ol.Coordinate} Point. * @return {ol.Coordinate} Point.
*/ */
ol.Projection.transformWithCodes = ol.projection.transformWithCodes =
function(point, sourceCode, destinationCode) { function(point, sourceCode, destinationCode) {
var transformFn = ol.Projection.getTransformFromCodes( var transformFn = ol.projection.getTransformFromCodes(
sourceCode, destinationCode); sourceCode, destinationCode);
return transformFn(point); return transformFn(point);
}; };

View File

@@ -1,6 +1,6 @@
goog.provide('ol.projection.addCommonProjections'); goog.provide('ol.projection.addCommonProjections');
goog.require('ol.Projection'); goog.require('ol.projection');
goog.require('ol.projection.EPSG3857'); goog.require('ol.projection.EPSG3857');
goog.require('ol.projection.EPSG4326'); goog.require('ol.projection.EPSG4326');
@@ -11,11 +11,11 @@ goog.require('ol.projection.EPSG4326');
ol.projection.addCommonProjections = function() { ol.projection.addCommonProjections = function() {
// Add transformations that don't alter coordinates to convert within set of // Add transformations that don't alter coordinates to convert within set of
// projections with equal meaning. // projections with equal meaning.
ol.Projection.addEquivalentProjections(ol.projection.EPSG3857.PROJECTIONS); ol.projection.addEquivalentProjections(ol.projection.EPSG3857.PROJECTIONS);
ol.Projection.addEquivalentProjections(ol.projection.EPSG4326.PROJECTIONS); ol.projection.addEquivalentProjections(ol.projection.EPSG4326.PROJECTIONS);
// Add transformations to convert EPSG:4326 like coordinates to EPSG:3857 like // Add transformations to convert EPSG:4326 like coordinates to EPSG:3857 like
// coordinates and back. // coordinates and back.
ol.Projection.addEquivalentTransforms( ol.projection.addEquivalentTransforms(
ol.projection.EPSG4326.PROJECTIONS, ol.projection.EPSG4326.PROJECTIONS,
ol.projection.EPSG3857.PROJECTIONS, ol.projection.EPSG3857.PROJECTIONS,
ol.projection.EPSG3857.fromEPSG4326, ol.projection.EPSG3857.fromEPSG4326,

View File

@@ -5,6 +5,7 @@ goog.require('ol.Coordinate');
goog.require('ol.Extent'); goog.require('ol.Extent');
goog.require('ol.Projection'); goog.require('ol.Projection');
goog.require('ol.ProjectionUnits'); goog.require('ol.ProjectionUnits');
goog.require('ol.projection');

View File

@@ -3,6 +3,7 @@ goog.provide('ol.projection.EPSG4326');
goog.require('ol.Extent'); goog.require('ol.Extent');
goog.require('ol.Projection'); goog.require('ol.Projection');
goog.require('ol.ProjectionUnits'); goog.require('ol.ProjectionUnits');
goog.require('ol.projection');

View File

@@ -6,11 +6,11 @@ goog.require('goog.array');
goog.require('goog.net.Jsonp'); goog.require('goog.net.Jsonp');
goog.require('ol.Attribution'); goog.require('ol.Attribution');
goog.require('ol.Extent'); goog.require('ol.Extent');
goog.require('ol.Projection');
goog.require('ol.Size'); goog.require('ol.Size');
goog.require('ol.TileCoord'); goog.require('ol.TileCoord');
goog.require('ol.TileRange'); goog.require('ol.TileRange');
goog.require('ol.TileUrlFunction'); goog.require('ol.TileUrlFunction');
goog.require('ol.projection');
goog.require('ol.source.ImageTileSource'); goog.require('ol.source.ImageTileSource');
goog.require('ol.tilegrid.XYZ'); goog.require('ol.tilegrid.XYZ');
@@ -36,7 +36,7 @@ ol.BingMapsStyle = {
ol.source.BingMaps = function(bingMapsOptions) { ol.source.BingMaps = function(bingMapsOptions) {
goog.base(this, { goog.base(this, {
projection: ol.Projection.getFromCode('EPSG:3857') projection: ol.projection.getFromCode('EPSG:3857')
}); });
/** /**
@@ -123,8 +123,8 @@ ol.source.BingMaps.prototype.handleImageryMetadataResponse =
}; };
}))); })));
var transform = ol.Projection.getTransform( var transform = ol.projection.getTransform(
ol.Projection.getFromCode('EPSG:4326'), this.getProjection()); ol.projection.getFromCode('EPSG:4326'), this.getProjection());
var attributions = goog.array.map( var attributions = goog.array.map(
resource.imageryProviders, resource.imageryProviders,
function(imageryProvider) { function(imageryProvider) {

View File

@@ -4,8 +4,8 @@ goog.require('goog.uri.utils');
goog.require('ol.Extent'); goog.require('ol.Extent');
goog.require('ol.Image'); goog.require('ol.Image');
goog.require('ol.ImageUrlFunction'); goog.require('ol.ImageUrlFunction');
goog.require('ol.Projection');
goog.require('ol.Size'); goog.require('ol.Size');
goog.require('ol.projection');
goog.require('ol.source.ImageSource'); goog.require('ol.source.ImageSource');
@@ -17,7 +17,7 @@ goog.require('ol.source.ImageSource');
*/ */
ol.source.SingleImageWMS = function(options) { ol.source.SingleImageWMS = function(options) {
var projection = ol.Projection.createProjection( var projection = ol.projection.createProjection(
options.projection, 'EPSG:3857'); options.projection, 'EPSG:3857');
var projectionExtent = projection.getExtent(); var projectionExtent = projection.getExtent();

View File

@@ -7,9 +7,9 @@ goog.require('goog.array');
goog.require('goog.object'); goog.require('goog.object');
goog.require('goog.uri.utils'); goog.require('goog.uri.utils');
goog.require('ol.Extent'); goog.require('ol.Extent');
goog.require('ol.Projection');
goog.require('ol.TileCoord'); goog.require('ol.TileCoord');
goog.require('ol.TileUrlFunction'); goog.require('ol.TileUrlFunction');
goog.require('ol.projection');
goog.require('ol.source.ImageTileSource'); goog.require('ol.source.ImageTileSource');
@@ -20,7 +20,7 @@ goog.require('ol.source.ImageTileSource');
* @param {ol.source.TiledWMSOptions} tiledWMSOptions options. * @param {ol.source.TiledWMSOptions} tiledWMSOptions options.
*/ */
ol.source.TiledWMS = function(tiledWMSOptions) { ol.source.TiledWMS = function(tiledWMSOptions) {
var projection = ol.Projection.createProjection( var projection = ol.projection.createProjection(
tiledWMSOptions.projection, 'EPSG:3857'); tiledWMSOptions.projection, 'EPSG:3857');
var projectionExtent = projection.getExtent(); var projectionExtent = projection.getExtent();

View File

@@ -13,10 +13,10 @@ goog.require('goog.asserts');
goog.require('goog.net.jsloader'); goog.require('goog.net.jsloader');
goog.require('ol.Attribution'); goog.require('ol.Attribution');
goog.require('ol.Extent'); goog.require('ol.Extent');
goog.require('ol.Projection');
goog.require('ol.TileCoord'); goog.require('ol.TileCoord');
goog.require('ol.TileRange'); goog.require('ol.TileRange');
goog.require('ol.TileUrlFunction'); goog.require('ol.TileUrlFunction');
goog.require('ol.projection');
goog.require('ol.source.ImageTileSource'); goog.require('ol.source.ImageTileSource');
goog.require('ol.tilegrid.XYZ'); goog.require('ol.tilegrid.XYZ');
@@ -52,7 +52,7 @@ goog.exportSymbol('grid', grid);
ol.source.TileJSON = function(tileJsonOptions) { ol.source.TileJSON = function(tileJsonOptions) {
goog.base(this, { goog.base(this, {
projection: ol.Projection.getFromCode('EPSG:3857') projection: ol.projection.getFromCode('EPSG:3857')
}); });
/** /**
@@ -80,7 +80,7 @@ ol.source.TileJSON.prototype.handleTileJSONResponse = function() {
var tileJSON = ol.tilejson.grids_.pop(); var tileJSON = ol.tilejson.grids_.pop();
var epsg4326Projection = ol.Projection.getFromCode('EPSG:4326'); var epsg4326Projection = ol.projection.getFromCode('EPSG:4326');
var epsg4326Extent, extent; var epsg4326Extent, extent;
if (goog.isDef(tileJSON.bounds)) { if (goog.isDef(tileJSON.bounds)) {
@@ -88,7 +88,7 @@ ol.source.TileJSON.prototype.handleTileJSONResponse = function() {
epsg4326Extent = new ol.Extent( epsg4326Extent = new ol.Extent(
bounds[0], bounds[1], bounds[2], bounds[3]); bounds[0], bounds[1], bounds[2], bounds[3]);
extent = epsg4326Extent.transform( extent = epsg4326Extent.transform(
ol.Projection.getTransform(epsg4326Projection, this.getProjection())); ol.projection.getTransform(epsg4326Projection, this.getProjection()));
this.setExtent(extent); this.setExtent(extent);
} else { } else {
epsg4326Extent = null; epsg4326Extent = null;

View File

@@ -10,6 +10,7 @@ goog.require('ol.Projection');
goog.require('ol.TileCoord'); goog.require('ol.TileCoord');
goog.require('ol.TileUrlFunction'); goog.require('ol.TileUrlFunction');
goog.require('ol.TileUrlFunctionType'); goog.require('ol.TileUrlFunctionType');
goog.require('ol.projection');
goog.require('ol.source.ImageTileSource'); goog.require('ol.source.ImageTileSource');
goog.require('ol.tilegrid.XYZ'); goog.require('ol.tilegrid.XYZ');
@@ -36,7 +37,7 @@ ol.source.XYZOptions;
ol.source.XYZ = function(xyzOptions) { ol.source.XYZ = function(xyzOptions) {
var projection = xyzOptions.projection || var projection = xyzOptions.projection ||
ol.Projection.getFromCode('EPSG:3857'); ol.projection.getFromCode('EPSG:3857');
/** /**
* @type {ol.TileUrlFunctionType} * @type {ol.TileUrlFunctionType}

View File

@@ -3,6 +3,7 @@ goog.provide('ol.tilegrid.XYZ');
goog.require('ol.Coordinate'); goog.require('ol.Coordinate');
goog.require('ol.Size'); goog.require('ol.Size');
goog.require('ol.TileRange'); goog.require('ol.TileRange');
goog.require('ol.projection');
goog.require('ol.projection.EPSG3857'); goog.require('ol.projection.EPSG3857');
goog.require('ol.tilegrid.TileGrid'); goog.require('ol.tilegrid.TileGrid');

View File

@@ -15,6 +15,7 @@ goog.require('ol.RotationConstraint');
goog.require('ol.Size'); goog.require('ol.Size');
goog.require('ol.View'); goog.require('ol.View');
goog.require('ol.animation'); goog.require('ol.animation');
goog.require('ol.projection');
/** /**
@@ -46,7 +47,7 @@ ol.View2D = function(opt_view2DOptions) {
var values = {}; var values = {};
values[ol.View2DProperty.CENTER] = goog.isDef(view2DOptions.center) ? values[ol.View2DProperty.CENTER] = goog.isDef(view2DOptions.center) ?
view2DOptions.center : null; view2DOptions.center : null;
values[ol.View2DProperty.PROJECTION] = ol.Projection.createProjection( values[ol.View2DProperty.PROJECTION] = ol.projection.createProjection(
view2DOptions.projection, 'EPSG:3857'); view2DOptions.projection, 'EPSG:3857');
if (goog.isDef(view2DOptions.resolution)) { if (goog.isDef(view2DOptions.resolution)) {
values[ol.View2DProperty.RESOLUTION] = view2DOptions.resolution; values[ol.View2DProperty.RESOLUTION] = view2DOptions.resolution;
@@ -353,7 +354,7 @@ ol.View2D.createConstraints_ = function(view2DOptions) {
numZoomLevels = view2DOptions.numZoomLevels; numZoomLevels = view2DOptions.numZoomLevels;
zoomFactor = view2DOptions.zoomFactor; zoomFactor = view2DOptions.zoomFactor;
} else { } else {
var projectionExtent = ol.Projection.createProjection( var projectionExtent = ol.projection.createProjection(
view2DOptions.projection, 'EPSG:3857').getExtent(); view2DOptions.projection, 'EPSG:3857').getExtent();
maxResolution = Math.max( maxResolution = Math.max(
projectionExtent.maxX - projectionExtent.minX, projectionExtent.maxX - projectionExtent.minX,

View File

@@ -71,7 +71,7 @@ describe('ol.Extent', function() {
it('does transform', function() { it('does transform', function() {
var transformFn = var transformFn =
ol.Projection.getTransformFromCodes('EPSG:4326', 'EPSG:3857'); ol.projection.getTransformFromCodes('EPSG:4326', 'EPSG:3857');
var sourceExtent = new ol.Extent(-15, -30, 45, 60); var sourceExtent = new ol.Extent(-15, -30, 45, 60);
var destinationExtent = sourceExtent.transform(transformFn); var destinationExtent = sourceExtent.transform(transformFn);
expect(destinationExtent).not.toBeUndefined(); expect(destinationExtent).not.toBeUndefined();
@@ -101,4 +101,4 @@ describe('ol.Extent', function() {
}); });
goog.require('ol.Extent'); goog.require('ol.Extent');
goog.require('ol.Projection'); goog.require('ol.projection');

View File

@@ -9,7 +9,7 @@ describe('ol.layer.Layer', function() {
beforeEach(function() { beforeEach(function() {
layer = new ol.layer.Layer({ layer = new ol.layer.Layer({
source: new ol.source.Source({ source: new ol.source.Source({
projection: ol.Projection.getFromCode('EPSG:4326') projection: ol.projection.getFromCode('EPSG:4326')
}) })
}); });
}); });
@@ -53,7 +53,7 @@ describe('ol.layer.Layer', function() {
it('accepts options', function() { it('accepts options', function() {
var layer = new ol.layer.Layer({ var layer = new ol.layer.Layer({
source: new ol.source.Source({ source: new ol.source.Source({
projection: ol.Projection.getFromCode('EPSG:4326') projection: ol.projection.getFromCode('EPSG:4326')
}), }),
brightness: 0.5, brightness: 0.5,
contrast: 10, contrast: 10,
@@ -82,7 +82,7 @@ describe('ol.layer.Layer', function() {
beforeEach(function() { beforeEach(function() {
layer = new ol.layer.Layer({ layer = new ol.layer.Layer({
source: new ol.source.Source({ source: new ol.source.Source({
projection: ol.Projection.getFromCode('EPSG:4326') projection: ol.projection.getFromCode('EPSG:4326')
}) })
}); });
}); });
@@ -120,7 +120,7 @@ describe('ol.layer.Layer', function() {
beforeEach(function() { beforeEach(function() {
layer = new ol.layer.Layer({ layer = new ol.layer.Layer({
source: new ol.source.Source({ source: new ol.source.Source({
projection: ol.Projection.getFromCode('EPSG:4326') projection: ol.projection.getFromCode('EPSG:4326')
}) })
}); });
}); });
@@ -154,7 +154,7 @@ describe('ol.layer.Layer', function() {
beforeEach(function() { beforeEach(function() {
layer = new ol.layer.Layer({ layer = new ol.layer.Layer({
source: new ol.source.Source({ source: new ol.source.Source({
projection: ol.Projection.getFromCode('EPSG:4326') projection: ol.projection.getFromCode('EPSG:4326')
}) })
}); });
}); });
@@ -193,7 +193,7 @@ describe('ol.layer.Layer', function() {
beforeEach(function() { beforeEach(function() {
layer = new ol.layer.Layer({ layer = new ol.layer.Layer({
source: new ol.source.Source({ source: new ol.source.Source({
projection: ol.Projection.getFromCode('EPSG:4326') projection: ol.projection.getFromCode('EPSG:4326')
}) })
}); });
}); });
@@ -227,7 +227,7 @@ describe('ol.layer.Layer', function() {
beforeEach(function() { beforeEach(function() {
layer = new ol.layer.Layer({ layer = new ol.layer.Layer({
source: new ol.source.Source({ source: new ol.source.Source({
projection: ol.Projection.getFromCode('EPSG:4326') projection: ol.projection.getFromCode('EPSG:4326')
}) })
}); });
}); });
@@ -259,7 +259,7 @@ describe('ol.layer.Layer', function() {
it('sets visible property', function() { it('sets visible property', function() {
var layer = new ol.layer.Layer({ var layer = new ol.layer.Layer({
source: new ol.source.Source({ source: new ol.source.Source({
projection: ol.Projection.getFromCode('EPSG:4326') projection: ol.projection.getFromCode('EPSG:4326')
}) })
}); });
@@ -275,3 +275,5 @@ describe('ol.layer.Layer', function() {
}); });
}); });
goog.require('ol.projection');

View File

@@ -1,17 +1,17 @@
goog.provide('ol.test.Projection'); goog.provide('ol.test.Projection');
describe('ol.Projection', function() { describe('ol.projection', function() {
beforeEach(function() { beforeEach(function() {
spyOn(ol.Projection, 'addTransform').andCallThrough(); spyOn(ol.projection, 'addTransform').andCallThrough();
}); });
afterEach(function() { afterEach(function() {
var argsForCall = ol.Projection.addTransform.argsForCall; var argsForCall = ol.projection.addTransform.argsForCall;
for (var i = 0, ii = argsForCall.length; i < ii; ++i) { for (var i = 0, ii = argsForCall.length; i < ii; ++i) {
try { try {
ol.Projection.removeTransform.apply( ol.projection.removeTransform.apply(
ol.Projection, argsForCall[i].splice(0, 2)); ol.projection, argsForCall[i].splice(0, 2));
} catch (error) { } catch (error) {
if (error instanceof goog.asserts.AssertionError) { if (error instanceof goog.asserts.AssertionError) {
// The removeTransform function may have been called explicitly by the // The removeTransform function may have been called explicitly by the
@@ -26,10 +26,10 @@ describe('ol.Projection', function() {
describe('projection equivalence', function() { describe('projection equivalence', function() {
function _testAllEquivalent(codes) { function _testAllEquivalent(codes) {
var projections = goog.array.map(codes, ol.Projection.getFromCode); var projections = goog.array.map(codes, ol.projection.getFromCode);
goog.array.forEach(projections, function(source) { goog.array.forEach(projections, function(source) {
goog.array.forEach(projections, function(destination) { goog.array.forEach(projections, function(destination) {
expect(ol.Projection.equivalent(source, destination)).toBeTruthy(); expect(ol.projection.equivalent(source, destination)).toBeTruthy();
}); });
}); });
} }
@@ -56,10 +56,10 @@ describe('ol.Projection', function() {
describe('identify transform', function() { describe('identify transform', function() {
it('returns a new object, with same coord values', function() { it('returns a new object, with same coord values', function() {
var epsg4326 = ol.Projection.getFromCode('EPSG:4326'); var epsg4326 = ol.projection.getFromCode('EPSG:4326');
var uniqueObject = {}; var uniqueObject = {};
var sourcePoint = new ol.Coordinate(uniqueObject, uniqueObject); var sourcePoint = new ol.Coordinate(uniqueObject, uniqueObject);
var destinationPoint = ol.Projection.transform( var destinationPoint = ol.projection.transform(
sourcePoint, epsg4326, epsg4326); sourcePoint, epsg4326, epsg4326);
expect(sourcePoint === destinationPoint).toBeFalsy(); expect(sourcePoint === destinationPoint).toBeFalsy();
expect(destinationPoint.x === sourcePoint.x).toBeTruthy(); expect(destinationPoint.x === sourcePoint.x).toBeTruthy();
@@ -70,7 +70,7 @@ describe('ol.Projection', function() {
describe('transform 0,0 from 4326 to 3857', function() { describe('transform 0,0 from 4326 to 3857', function() {
it('returns expected value', function() { it('returns expected value', function() {
var point = ol.Projection.transformWithCodes( var point = ol.projection.transformWithCodes(
new ol.Coordinate(0, 0), 'EPSG:4326', 'EPSG:3857'); new ol.Coordinate(0, 0), 'EPSG:4326', 'EPSG:3857');
expect(point).not.toBeUndefined(); expect(point).not.toBeUndefined();
expect(point).not.toBeNull(); expect(point).not.toBeNull();
@@ -81,7 +81,7 @@ describe('ol.Projection', function() {
describe('transform 0,0 from 3857 to 4326', function() { describe('transform 0,0 from 3857 to 4326', function() {
it('returns expected value', function() { it('returns expected value', function() {
var point = ol.Projection.transformWithCodes( var point = ol.projection.transformWithCodes(
new ol.Coordinate(0, 0), 'EPSG:3857', 'EPSG:4326'); new ol.Coordinate(0, 0), 'EPSG:3857', 'EPSG:4326');
expect(point).not.toBeUndefined(); expect(point).not.toBeUndefined();
expect(point).not.toBeNull(); expect(point).not.toBeNull();
@@ -94,7 +94,7 @@ describe('ol.Projection', function() {
// http://alastaira.wordpress.com/2011/01/23/the-google-maps-bing-maps-spherical-mercator-projection/ // http://alastaira.wordpress.com/2011/01/23/the-google-maps-bing-maps-spherical-mercator-projection/
it('returns expected value', function() { it('returns expected value', function() {
var point = ol.Projection.transformWithCodes( var point = ol.projection.transformWithCodes(
new ol.Coordinate(-5.625, 52.4827802220782), new ol.Coordinate(-5.625, 52.4827802220782),
'EPSG:4326', 'EPSG:4326',
'EPSG:900913'); 'EPSG:900913');
@@ -109,7 +109,7 @@ describe('ol.Projection', function() {
// http://alastaira.wordpress.com/2011/01/23/the-google-maps-bing-maps-spherical-mercator-projection/ // http://alastaira.wordpress.com/2011/01/23/the-google-maps-bing-maps-spherical-mercator-projection/
it('returns expected value', function() { it('returns expected value', function() {
var point = ol.Projection.transformWithCodes( var point = ol.projection.transformWithCodes(
new ol.Coordinate(-626172.13571216376, 6887893.4928337997), new ol.Coordinate(-626172.13571216376, 6887893.4928337997),
'EPSG:900913', 'EPSG:900913',
'EPSG:4326'); 'EPSG:4326');
@@ -123,7 +123,7 @@ describe('ol.Projection', function() {
describe('Proj4js integration', function() { describe('Proj4js integration', function() {
it('allows Proj4js projections to be used transparently', function() { it('allows Proj4js projections to be used transparently', function() {
var point = ol.Projection.transformWithCodes( var point = ol.projection.transformWithCodes(
new ol.Coordinate(-626172.13571216376, 6887893.4928337997), new ol.Coordinate(-626172.13571216376, 6887893.4928337997),
'GOOGLE', 'GOOGLE',
'WGS84'); 'WGS84');
@@ -136,7 +136,7 @@ describe('ol.Projection', function() {
'+proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333333333 ' + '+proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333333333 ' +
'+k_0=1 +x_0=600000 +y_0=200000 +ellps=bessel ' + '+k_0=1 +x_0=600000 +y_0=200000 +ellps=bessel ' +
'+towgs84=674.374,15.056,405.346,0,0,0,0 +units=m +no_defs'; '+towgs84=674.374,15.056,405.346,0,0,0,0 +units=m +no_defs';
var point = ol.Projection.transformWithCodes( var point = ol.projection.transformWithCodes(
new ol.Coordinate(7.439583333333333, 46.95240555555556), new ol.Coordinate(7.439583333333333, 46.95240555555556),
'EPSG:4326', 'EPSG:4326',
'EPSG:21781'); 'EPSG:21781');
@@ -146,13 +146,13 @@ describe('ol.Projection', function() {
}); });
describe('ol.Projection.getTransform()', function() { describe('ol.projection.getTransform()', function() {
var sm = ol.Projection.getFromCode('GOOGLE'); var sm = ol.projection.getFromCode('GOOGLE');
var gg = ol.Projection.getFromCode('EPSG:4326'); var gg = ol.projection.getFromCode('EPSG:4326');
it('returns a transform function', function() { it('returns a transform function', function() {
var transform = ol.Projection.getTransform(sm, gg); var transform = ol.projection.getTransform(sm, gg);
expect(typeof transform).toBe('function'); expect(typeof transform).toBe('function');
var coordinate = transform(new ol.Coordinate(-12000000, 5000000)); var coordinate = transform(new ol.Coordinate(-12000000, 5000000));
@@ -164,16 +164,16 @@ describe('ol.Projection', function() {
}); });
describe('ol.Projection.getTransformFromCodes()', function() { describe('ol.projection.getTransformFromCodes()', function() {
it('returns a function', function() { it('returns a function', function() {
var transform = ol.Projection.getTransformFromCodes( var transform = ol.projection.getTransformFromCodes(
'GOOGLE', 'EPSG:4326'); 'GOOGLE', 'EPSG:4326');
expect(typeof transform).toBe('function'); expect(typeof transform).toBe('function');
}); });
it('returns a transform function', function() { it('returns a transform function', function() {
var transform = ol.Projection.getTransformFromCodes( var transform = ol.projection.getTransformFromCodes(
'GOOGLE', 'EPSG:4326'); 'GOOGLE', 'EPSG:4326');
expect(typeof transform).toBe('function'); expect(typeof transform).toBe('function');
@@ -187,7 +187,7 @@ describe('ol.Projection', function() {
}); });
describe('ol.Projection.removeTransform()', function() { describe('ol.projection.removeTransform()', function() {
var extent = new ol.Extent(-180, -90, 180, 90); var extent = new ol.Extent(-180, -90, 180, 90);
var units = ol.ProjectionUnits.DEGREES; var units = ol.ProjectionUnits.DEGREES;
@@ -196,14 +196,14 @@ describe('ol.Projection', function() {
var foo = new ol.Projection('foo', units, extent); var foo = new ol.Projection('foo', units, extent);
var bar = new ol.Projection('bar', units, extent); var bar = new ol.Projection('bar', units, extent);
var transform = function() {}; var transform = function() {};
ol.Projection.addTransform(foo, bar, transform); ol.projection.addTransform(foo, bar, transform);
expect(ol.Projection.transforms_).not.toBeUndefined(); expect(ol.projection.transforms_).not.toBeUndefined();
expect(ol.Projection.transforms_.foo).not.toBeUndefined(); expect(ol.projection.transforms_.foo).not.toBeUndefined();
expect(ol.Projection.transforms_.foo.bar).toBe(transform); expect(ol.projection.transforms_.foo.bar).toBe(transform);
var removed = ol.Projection.removeTransform(foo, bar); var removed = ol.projection.removeTransform(foo, bar);
expect(removed).toBe(transform); expect(removed).toBe(transform);
expect(ol.Projection.transforms_.foo).toBeUndefined(); expect(ol.projection.transforms_.foo).toBeUndefined();
}); });
}); });
@@ -215,3 +215,4 @@ goog.require('ol.Coordinate');
goog.require('ol.Extent'); goog.require('ol.Extent');
goog.require('ol.Projection'); goog.require('ol.Projection');
goog.require('ol.ProjectionUnits'); goog.require('ol.ProjectionUnits');
goog.require('ol.projection');

View File

@@ -5,7 +5,7 @@ describe('ol.source.TileSource', function() {
describe('constructor', function() { describe('constructor', function() {
it('returns a tile source', function() { it('returns a tile source', function() {
var source = new ol.source.TileSource({ var source = new ol.source.TileSource({
projection: ol.Projection.getFromCode('EPSG:4326') projection: ol.projection.getFromCode('EPSG:4326')
}); });
expect(source).toBeA(ol.source.Source); expect(source).toBeA(ol.source.Source);
expect(source).toBeA(ol.source.TileSource); expect(source).toBeA(ol.source.TileSource);
@@ -161,7 +161,7 @@ ol.test.source.MockTileSource = function(loaded) {
goog.base(this, { goog.base(this, {
extent: extent, extent: extent,
projection: ol.Projection.getFromCode('EPSG:4326'), projection: ol.projection.getFromCode('EPSG:4326'),
tileGrid: tileGrid tileGrid: tileGrid
}); });
@@ -230,9 +230,9 @@ goog.require('goog.object');
goog.require('ol.Coordinate'); goog.require('ol.Coordinate');
goog.require('ol.Extent'); goog.require('ol.Extent');
goog.require('ol.Projection');
goog.require('ol.Tile'); goog.require('ol.Tile');
goog.require('ol.TileCoord'); goog.require('ol.TileCoord');
goog.require('ol.TileState'); goog.require('ol.TileState');
goog.require('ol.projection');
goog.require('ol.source.TileSource'); goog.require('ol.source.TileSource');
goog.require('ol.tilegrid.TileGrid'); goog.require('ol.tilegrid.TileGrid');

View File

@@ -97,7 +97,7 @@ describe('ol.tilegrid.TileGrid', function() {
describe('createForProjection', function() { describe('createForProjection', function() {
it('allows easier creation of a tile grid', function() { it('allows easier creation of a tile grid', function() {
var projection = ol.Projection.getFromCode('EPSG:3857'); var projection = ol.projection.getFromCode('EPSG:3857');
var grid = ol.tilegrid.createForProjection(projection); var grid = ol.tilegrid.createForProjection(projection);
expect(grid).toBeA(ol.tilegrid.TileGrid); expect(grid).toBeA(ol.tilegrid.TileGrid);
@@ -106,7 +106,7 @@ describe('ol.tilegrid.TileGrid', function() {
}); });
it('accepts a number of zoom levels', function() { it('accepts a number of zoom levels', function() {
var projection = ol.Projection.getFromCode('EPSG:3857'); var projection = ol.projection.getFromCode('EPSG:3857');
var grid = ol.tilegrid.createForProjection(projection, 22); var grid = ol.tilegrid.createForProjection(projection, 22);
expect(grid).toBeA(ol.tilegrid.TileGrid); expect(grid).toBeA(ol.tilegrid.TileGrid);
@@ -115,7 +115,7 @@ describe('ol.tilegrid.TileGrid', function() {
}); });
it('accepts a big number of zoom levels', function() { it('accepts a big number of zoom levels', function() {
var projection = ol.Projection.getFromCode('EPSG:3857'); var projection = ol.projection.getFromCode('EPSG:3857');
var grid = ol.tilegrid.createForProjection(projection, 23); var grid = ol.tilegrid.createForProjection(projection, 23);
expect(grid).toBeA(ol.tilegrid.TileGrid); expect(grid).toBeA(ol.tilegrid.TileGrid);
@@ -570,4 +570,5 @@ goog.require('ol.Coordinate');
goog.require('ol.Extent'); goog.require('ol.Extent');
goog.require('ol.Size'); goog.require('ol.Size');
goog.require('ol.TileCoord'); goog.require('ol.TileCoord');
goog.require('ol.projection');
goog.require('ol.tilegrid.TileGrid'); goog.require('ol.tilegrid.TileGrid');

View File

@@ -69,7 +69,7 @@ describe('ol.TileUrlFunction', function() {
}); });
}); });
it('creates expected URL', function() { it('creates expected URL', function() {
var epsg3857 = ol.Projection.getFromCode('EPSG:3857'); var epsg3857 = ol.projection.getFromCode('EPSG:3857');
var tileUrlFunction = ol.TileUrlFunction.createBboxParam( var tileUrlFunction = ol.TileUrlFunction.createBboxParam(
'http://wms?foo=bar', tileGrid, epsg3857.getAxisOrientation()); 'http://wms?foo=bar', tileGrid, epsg3857.getAxisOrientation());
var tileCoord = new ol.TileCoord(1, 0, 0); var tileCoord = new ol.TileCoord(1, 0, 0);
@@ -79,7 +79,7 @@ describe('ol.TileUrlFunction', function() {
expect(tileUrl).toEqual(expected); expect(tileUrl).toEqual(expected);
}); });
it('creates expected URL respecting axis orientation', function() { it('creates expected URL respecting axis orientation', function() {
var epsg4326 = ol.Projection.getFromCode('EPSG:4326'); var epsg4326 = ol.projection.getFromCode('EPSG:4326');
var tileUrlFunction = ol.TileUrlFunction.createBboxParam( var tileUrlFunction = ol.TileUrlFunction.createBboxParam(
'http://wms?foo=bar', tileGrid, epsg4326.getAxisOrientation()); 'http://wms?foo=bar', tileGrid, epsg4326.getAxisOrientation());
var tileCoord = new ol.TileCoord(1, 0, 0); var tileCoord = new ol.TileCoord(1, 0, 0);
@@ -93,4 +93,5 @@ describe('ol.TileUrlFunction', function() {
goog.require('ol.TileCoord'); goog.require('ol.TileCoord');
goog.require('ol.TileUrlFunction'); goog.require('ol.TileUrlFunction');
goog.require('ol.projection');
goog.require('ol.tilegrid.XYZ'); goog.require('ol.tilegrid.XYZ');