Less context

This change removes all changes that were anticipated here for
WMS GetFeatureInfo handling, including the IWMS interface and
the goog.provide for 'ol.tilegrid'. I'll create a separate pull
request for WMS GetFeatureInfo eventually, taking into account
the suggestions from the discussion in #402.
This commit is contained in:
ahocevar
2013-03-20 13:41:36 +01:00
parent 57fdd78a19
commit 5719160155
15 changed files with 22 additions and 75 deletions

View File

@@ -14,15 +14,16 @@ ol.ImageUrlFunctionType;
/**
* @param {string} baseUrl Base URL (may have query data).
* @param {Object.<string,*>} params to encode in the url.
* @param {function(string, Object.<string,*>, ol.Extent, ol.Size,
* ol.Projection)} paramsFunction params function.
* @return {ol.ImageUrlFunctionType} Image URL function.
*/
ol.ImageUrlFunction.createFromParamsFunction =
function(baseUrl, paramsFunction) {
function(baseUrl, params, paramsFunction) {
return function(extent, size, projection) {
return paramsFunction(
baseUrl, this.params, extent, size, projection);
baseUrl, params, extent, size, projection);
};
};

View File

@@ -14,7 +14,6 @@ goog.require('ol.TileState');
goog.require('ol.layer.TileLayer');
goog.require('ol.renderer.Map');
goog.require('ol.renderer.canvas.Layer');
goog.require('ol.tilegrid');

View File

@@ -14,7 +14,6 @@ goog.require('ol.geom.GeometryType');
goog.require('ol.layer.Vector');
goog.require('ol.renderer.canvas.Layer');
goog.require('ol.renderer.canvas.VectorRenderer');
goog.require('ol.tilegrid');
goog.require('ol.tilegrid.TileGrid');

View File

@@ -16,7 +16,6 @@ goog.require('ol.ViewHint');
goog.require('ol.dom');
goog.require('ol.layer.TileLayer');
goog.require('ol.renderer.dom.Layer');
goog.require('ol.tilegrid');
goog.require('ol.tilegrid.TileGrid');

View File

@@ -23,7 +23,6 @@ goog.require('ol.layer.TileLayer');
goog.require('ol.renderer.webgl.FragmentShader');
goog.require('ol.renderer.webgl.Layer');
goog.require('ol.renderer.webgl.VertexShader');
goog.require('ol.tilegrid');

View File

@@ -82,7 +82,7 @@ goog.inherits(ol.source.ImageSource, ol.source.Source);
ol.source.ImageSource.prototype.createImage =
function(extent, resolution, size, projection) {
var image = null;
var imageUrl = this.imageUrlFunction.call(this, extent, size, projection);
var imageUrl = this.imageUrlFunction(extent, size, projection);
if (goog.isDef(imageUrl)) {
image = new ol.Image(
extent, resolution, imageUrl, this.crossOrigin_,

View File

@@ -94,8 +94,7 @@ ol.source.ImageTileSource.prototype.getTile =
} else {
goog.asserts.assert(tileGrid);
goog.asserts.assert(projection);
var tileUrl = this.tileUrlFunction.call(this,
tileCoord, tileGrid, projection);
var tileUrl = this.tileUrlFunction(tileCoord, tileGrid, projection);
var tile = new ol.ImageTile(
tileCoord,
goog.isDef(tileUrl) ? ol.TileState.IDLE : ol.TileState.EMPTY,

View File

@@ -11,14 +11,13 @@ goog.require('ol.source.wms');
/**
* @constructor
* @implements {ol.source.IWMS}
* @extends {ol.source.ImageSource}
* @param {ol.source.SingleImageWMSOptions} options Options.
*/
ol.source.SingleImageWMS = function(options) {
var imageUrlFunction = goog.isDef(options.url) ?
ol.ImageUrlFunction.createFromParamsFunction(
options.url, ol.source.wms.getUrl) :
options.url, options.params, ol.source.wms.getUrl) :
ol.ImageUrlFunction.nullImageUrlFunction;
goog.base(this, {
@@ -30,16 +29,6 @@ ol.source.SingleImageWMS = function(options) {
imageUrlFunction: imageUrlFunction
});
/**
* @inheritDoc
*/
this.url = options.url;
/**
* @inheritDoc
*/
this.params = options.params;
/**
* @private
* @type {ol.Image}

View File

@@ -14,7 +14,6 @@ goog.require('ol.source.wms');
/**
* @constructor
* @implements {ol.source.IWMS}
* @extends {ol.source.ImageTileSource}
* @param {ol.source.TiledWMSOptions} tiledWMSOptions options.
*/
@@ -33,7 +32,7 @@ ol.source.TiledWMS = function(tiledWMSOptions) {
var tileUrlFunctions = goog.array.map(
urls, function(url) {
return ol.TileUrlFunction.createFromParamsFunction(
url, ol.source.wms.getUrl);
url, tiledWMSOptions.params, ol.source.wms.getUrl);
});
tileUrlFunction = ol.TileUrlFunction.createFromTileUrlFunctions(
tileUrlFunctions);
@@ -68,16 +67,6 @@ ol.source.TiledWMS = function(tiledWMSOptions) {
return new ol.TileCoord(tileCoord.z, x, tileCoord.y);
};
/**
* @inheritDoc
*/
this.url = goog.isDef(urls) ? urls[0] : undefined;
/**
* @inheritDoc
*/
this.params = tiledWMSOptions.params;
goog.base(this, {
attributions: tiledWMSOptions.attributions,
crossOrigin: tiledWMSOptions.crossOrigin,

View File

@@ -1,29 +1,6 @@
goog.provide('ol.source.IWMS');
goog.provide('ol.source.wms');
/**
* Interface for WMS
* @interface
*/
ol.source.IWMS = function() {};
/**
* @type {string|undefined} The url for this source.
*/
ol.source.IWMS.prototype.url;
/**
* @type {Object.<string,*>} Parameters for WMS requests. 'LAYERS' is mandatory.
* 'STYLES' defaults to ''. 'VERSION' defaults to '1.3.0'. 'CRS'/'SRS',
* 'BBOX' and 'SIZE' are added dynamically.
*/
ol.source.IWMS.prototype.params;
/**
* @param {string} baseUrl WMS base url.
* @param {Object.<string, string|number>} params Request parameters.

View File

@@ -1,6 +1,5 @@
// FIXME cope with tile grids whose minium zoom is not zero
goog.provide('ol.tilegrid');
goog.provide('ol.tilegrid.TileGrid');
goog.require('goog.array');

View File

@@ -62,12 +62,13 @@ ol.TileUrlFunction.createFromTileUrlFunctions = function(tileUrlFunctions) {
/**
* @param {string} baseUrl Base URL (may have query data).
* @param {Object.<string,*>} params to encode in the url.
* @param {function(string, Object.<string,*>, ol.Extent, ol.Size,
* ol.Projection)} paramsFunction params function.
* @return {ol.TileUrlFunctionType} Tile URL function.
*/
ol.TileUrlFunction.createFromParamsFunction =
function(baseUrl, paramsFunction) {
function(baseUrl, params, paramsFunction) {
return function(tileCoord, tileGrid, projection) {
if (goog.isNull(tileCoord)) {
return undefined;
@@ -75,7 +76,7 @@ ol.TileUrlFunction.createFromParamsFunction =
var size = tileGrid.getTileSize(tileCoord.z);
var extent = tileGrid.getTileCoordExtent(tileCoord);
return paramsFunction(
baseUrl, this.params, extent, size, projection);
baseUrl, params, extent, size, projection);
}
};
};

View File

@@ -3,17 +3,16 @@ goog.provide('ol.source.test.wms');
describe('ol.source.wms', function() {
describe('ol.source.wms.getUrl', function() {
var that = {params: {}};
it('creates expected URL', function() {
var epsg3857 = ol.projection.get('EPSG:3857');
var tileGrid = ol.tilegrid.getForProjection(epsg3857);
var tileUrlFunction = ol.TileUrlFunction.createFromParamsFunction(
'http://wms?foo=bar', ol.source.wms.getUrl);
'http://wms', {'foo': 'bar'}, ol.source.wms.getUrl);
var tileCoord = new ol.TileCoord(1, 0, 0);
var tileUrl = tileUrlFunction.call(that, tileCoord, tileGrid, epsg3857);
var expected = 'http://wms?foo=bar&SERVICE=WMS&VERSION=1.3.0&REQUEST=' +
var tileUrl = tileUrlFunction(tileCoord, tileGrid, epsg3857);
var expected = 'http://wms?SERVICE=WMS&VERSION=1.3.0&REQUEST=' +
'GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&WIDTH=256&HEIGHT=256&' +
'STYLES=&CRS=EPSG%3A3857&BBOX=' +
'foo=bar&STYLES=&CRS=EPSG%3A3857&BBOX=' +
'-20037508.342789244%2C-20037508.342789244%2C0%2C0';
expect(tileUrl).to.eql(expected);
});
@@ -21,12 +20,12 @@ describe('ol.source.wms', function() {
var epsg4326 = ol.projection.get('EPSG:4326');
var tileGrid = ol.tilegrid.getForProjection(epsg4326);
var tileUrlFunction = ol.TileUrlFunction.createFromParamsFunction(
'http://wms?foo=bar', ol.source.wms.getUrl);
'http://wms', {'foo': 'bar'}, ol.source.wms.getUrl);
var tileCoord = new ol.TileCoord(1, 0, 0);
var tileUrl = tileUrlFunction.call(that, tileCoord, tileGrid, epsg4326);
var expected = 'http://wms?foo=bar&SERVICE=WMS&VERSION=1.3.0&REQUEST=' +
var tileUrl = tileUrlFunction(tileCoord, tileGrid, epsg4326);
var expected = 'http://wms?SERVICE=WMS&VERSION=1.3.0&REQUEST=' +
'GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&WIDTH=256&HEIGHT=256&' +
'STYLES=&CRS=EPSG%3A4326&BBOX=-90%2C-180%2C90%2C0';
'foo=bar&STYLES=&CRS=EPSG%3A4326&BBOX=-90%2C-180%2C90%2C0';
expect(tileUrl).to.eql(expected);
});
});
@@ -38,4 +37,3 @@ goog.require('ol.TileCoord');
goog.require('ol.TileUrlFunction');
goog.require('ol.projection');
goog.require('ol.source.wms');
goog.require('ol.tilegrid');

View File

@@ -660,5 +660,4 @@ goog.require('ol.Extent');
goog.require('ol.Size');
goog.require('ol.TileCoord');
goog.require('ol.projection');
goog.require('ol.tilegrid');
goog.require('ol.tilegrid.TileGrid');

View File

@@ -81,14 +81,14 @@ describe('ol.TileUrlFunction', function() {
describe('createFromParamsFunction', function() {
var paramsFunction = function(url, params) { return arguments; };
var projection = ol.projection.get('EPSG:3857');
var params = {foo: 'bar'};
var tileUrlFunction = ol.TileUrlFunction.createFromParamsFunction(
'url', paramsFunction);
'url', params, paramsFunction);
it('calls the passed function with the correct arguments', function() {
var that = {params: {foo: 'bar'}};
var args = tileUrlFunction.call(that, new ol.TileCoord(0, 0, 0),
var args = tileUrlFunction(new ol.TileCoord(0, 0, 0),
ol.tilegrid.getForProjection(projection), projection);
expect(args[0]).to.eql('url');
expect(args[1]).to.be(that.params);
expect(args[1]).to.be(params);
expect(args[2]).to.eql(projection.getExtent());
expect(args[3]).to.eql(new ol.Size(256, 256));
expect(args[4]).to.eql(projection);
@@ -101,4 +101,3 @@ goog.require('ol.Size');
goog.require('ol.TileCoord');
goog.require('ol.TileUrlFunction');
goog.require('ol.projection');
goog.require('ol.tilegrid');