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:
@@ -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);
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -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');
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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');
|
||||
|
||||
|
||||
|
||||
@@ -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');
|
||||
|
||||
|
||||
|
||||
@@ -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');
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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_,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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');
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
@@ -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');
|
||||
|
||||
@@ -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');
|
||||
|
||||
@@ -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');
|
||||
|
||||
Reference in New Issue
Block a user