Support tile sources without configured projection
This change adds a lot of flexibility to working with tile layers: Sources where the server projection or tile grid do not matter can now be constructed without specifying a projection or tile grid. The tileUrlFunction/imageUrlFunction now also creates updated URLs when the params of the layer change, so things like mergeNewParams in ol2 will be possible. A nice side effect of this whole change is that there is no more duplicated code between tiled and single image WMS layers. While I was at it, I also fixed a WMS 1.1.1 axis order issue and incorrect STYLES params (STYLES=& instead of STYLES&).
This commit is contained in:
@@ -1,31 +1,28 @@
|
||||
goog.provide('ol.ImageUrlFunction');
|
||||
goog.provide('ol.ImageUrlFunctionType');
|
||||
|
||||
goog.require('goog.uri.utils');
|
||||
goog.require('ol.Extent');
|
||||
goog.require('ol.Size');
|
||||
goog.require('ol.source.wms');
|
||||
|
||||
|
||||
/**
|
||||
* @typedef {function(ol.Extent, ol.Size): (string|undefined)}
|
||||
* @typedef {function(ol.Extent, ol.Size, ol.Projection): (string|undefined)}
|
||||
*/
|
||||
ol.ImageUrlFunctionType;
|
||||
|
||||
|
||||
/**
|
||||
* @param {string} baseUrl Base URL (may have query data).
|
||||
* @param {string} axisOrientation Axis orientation.
|
||||
* @param {Object.<string, string|number>} params WMS parameters.
|
||||
* @param {string=} opt_version WMS version.
|
||||
* @return {ol.ImageUrlFunctionType} Image URL function.
|
||||
*/
|
||||
ol.ImageUrlFunction.createBboxParam = function(baseUrl, axisOrientation) {
|
||||
return function(extent, size) {
|
||||
var bboxValues = axisOrientation.substr(0, 2) == 'ne' ?
|
||||
[extent.minY, extent.minX, extent.maxY, extent.maxX] :
|
||||
[extent.minX, extent.minY, extent.maxX, extent.maxY];
|
||||
return goog.uri.utils.appendParams(baseUrl,
|
||||
'BBOX', bboxValues.join(','),
|
||||
'HEIGHT', size.height,
|
||||
'WIDTH', size.width);
|
||||
ol.ImageUrlFunction.createWMSParams =
|
||||
function(baseUrl, params, opt_version) {
|
||||
return function(extent, size, projection) {
|
||||
return ol.source.wms.getUrl(
|
||||
baseUrl, params, extent, size, projection, opt_version);
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user