Merge pull request #450 from elemoine/projection-null
Do not pass tile grid to getTile and tileUrlFunc
This commit is contained in:
@@ -195,7 +195,7 @@ ol.renderer.canvas.TileLayer.prototype.renderFrame =
|
|||||||
|
|
||||||
var getTileIfLoaded = this.createGetTileIfLoadedFunction(function(tile) {
|
var getTileIfLoaded = this.createGetTileIfLoadedFunction(function(tile) {
|
||||||
return !goog.isNull(tile) && tile.getState() == ol.TileState.LOADED;
|
return !goog.isNull(tile) && tile.getState() == ol.TileState.LOADED;
|
||||||
}, tileSource, tileGrid, projection);
|
}, tileSource, projection);
|
||||||
var findLoadedTiles = goog.bind(tileSource.findLoadedTiles, tileSource,
|
var findLoadedTiles = goog.bind(tileSource.findLoadedTiles, tileSource,
|
||||||
tilesToDrawByZ, getTileIfLoaded);
|
tilesToDrawByZ, getTileIfLoaded);
|
||||||
|
|
||||||
@@ -204,7 +204,7 @@ ol.renderer.canvas.TileLayer.prototype.renderFrame =
|
|||||||
for (x = tileRange.minX; x <= tileRange.maxX; ++x) {
|
for (x = tileRange.minX; x <= tileRange.maxX; ++x) {
|
||||||
for (y = tileRange.minY; y <= tileRange.maxY; ++y) {
|
for (y = tileRange.minY; y <= tileRange.maxY; ++y) {
|
||||||
|
|
||||||
tile = tileSource.getTile(z, x, y, tileGrid, projection);
|
tile = tileSource.getTile(z, x, y, projection);
|
||||||
tileState = tile.getState();
|
tileState = tile.getState();
|
||||||
if (tileState == ol.TileState.LOADED || tileState == ol.TileState.EMPTY) {
|
if (tileState == ol.TileState.LOADED || tileState == ol.TileState.EMPTY) {
|
||||||
tilesToDrawByZ[z][tile.tileCoord.toString()] = tile;
|
tilesToDrawByZ[z][tile.tileCoord.toString()] = tile;
|
||||||
|
|||||||
@@ -107,7 +107,7 @@ ol.renderer.dom.TileLayer.prototype.renderFrame =
|
|||||||
|
|
||||||
var getTileIfLoaded = this.createGetTileIfLoadedFunction(function(tile) {
|
var getTileIfLoaded = this.createGetTileIfLoadedFunction(function(tile) {
|
||||||
return !goog.isNull(tile) && tile.getState() == ol.TileState.LOADED;
|
return !goog.isNull(tile) && tile.getState() == ol.TileState.LOADED;
|
||||||
}, tileSource, tileGrid, projection);
|
}, tileSource, projection);
|
||||||
var findLoadedTiles = goog.bind(tileSource.findLoadedTiles, tileSource,
|
var findLoadedTiles = goog.bind(tileSource.findLoadedTiles, tileSource,
|
||||||
tilesToDrawByZ, getTileIfLoaded);
|
tilesToDrawByZ, getTileIfLoaded);
|
||||||
|
|
||||||
@@ -116,7 +116,7 @@ ol.renderer.dom.TileLayer.prototype.renderFrame =
|
|||||||
for (x = tileRange.minX; x <= tileRange.maxX; ++x) {
|
for (x = tileRange.minX; x <= tileRange.maxX; ++x) {
|
||||||
for (y = tileRange.minY; y <= tileRange.maxY; ++y) {
|
for (y = tileRange.minY; y <= tileRange.maxY; ++y) {
|
||||||
|
|
||||||
tile = tileSource.getTile(z, x, y, tileGrid, projection);
|
tile = tileSource.getTile(z, x, y, projection);
|
||||||
tileState = tile.getState();
|
tileState = tile.getState();
|
||||||
if (tileState == ol.TileState.LOADED) {
|
if (tileState == ol.TileState.LOADED) {
|
||||||
tilesToDrawByZ[z][tile.tileCoord.toString()] = tile;
|
tilesToDrawByZ[z][tile.tileCoord.toString()] = tile;
|
||||||
|
|||||||
@@ -249,15 +249,14 @@ ol.renderer.Layer.prototype.updateUsedTiles =
|
|||||||
* @param {function(ol.Tile): boolean} isLoadedFunction Function to
|
* @param {function(ol.Tile): boolean} isLoadedFunction Function to
|
||||||
* determine if the tile is loaded.
|
* determine if the tile is loaded.
|
||||||
* @param {ol.source.TileSource} tileSource Tile source.
|
* @param {ol.source.TileSource} tileSource Tile source.
|
||||||
* @param {ol.tilegrid.TileGrid} tileGrid Tile grid.
|
|
||||||
* @param {ol.Projection} projection Projection.
|
* @param {ol.Projection} projection Projection.
|
||||||
* @return {function(number, number, number): ol.Tile} Returns a tile if it is
|
* @return {function(number, number, number): ol.Tile} Returns a tile if it is
|
||||||
* loaded.
|
* loaded.
|
||||||
*/
|
*/
|
||||||
ol.renderer.Layer.prototype.createGetTileIfLoadedFunction =
|
ol.renderer.Layer.prototype.createGetTileIfLoadedFunction =
|
||||||
function(isLoadedFunction, tileSource, tileGrid, projection) {
|
function(isLoadedFunction, tileSource, projection) {
|
||||||
return function(z, x, y) {
|
return function(z, x, y) {
|
||||||
var tile = tileSource.getTile(z, x, y, tileGrid, projection);
|
var tile = tileSource.getTile(z, x, y, projection);
|
||||||
return isLoadedFunction(tile) ? tile : null;
|
return isLoadedFunction(tile) ? tile : null;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -314,7 +313,7 @@ ol.renderer.Layer.prototype.manageTilePyramid = function(
|
|||||||
for (x = tileRange.minX; x <= tileRange.maxX; ++x) {
|
for (x = tileRange.minX; x <= tileRange.maxX; ++x) {
|
||||||
for (y = tileRange.minY; y <= tileRange.maxY; ++y) {
|
for (y = tileRange.minY; y <= tileRange.maxY; ++y) {
|
||||||
if (currentZ - z <= preload) {
|
if (currentZ - z <= preload) {
|
||||||
tile = tileSource.getTile(z, x, y, tileGrid, projection);
|
tile = tileSource.getTile(z, x, y, projection);
|
||||||
if (tile.getState() == ol.TileState.IDLE) {
|
if (tile.getState() == ol.TileState.IDLE) {
|
||||||
wantedTiles[tile.tileCoord.toString()] = true;
|
wantedTiles[tile.tileCoord.toString()] = true;
|
||||||
if (!tileQueue.isKeyQueued(tile.getKey())) {
|
if (!tileQueue.isKeyQueued(tile.getKey())) {
|
||||||
|
|||||||
@@ -205,7 +205,7 @@ ol.renderer.webgl.TileLayer.prototype.renderFrame =
|
|||||||
var getTileIfLoaded = this.createGetTileIfLoadedFunction(function(tile) {
|
var getTileIfLoaded = this.createGetTileIfLoadedFunction(function(tile) {
|
||||||
return !goog.isNull(tile) && tile.getState() == ol.TileState.LOADED &&
|
return !goog.isNull(tile) && tile.getState() == ol.TileState.LOADED &&
|
||||||
mapRenderer.isTileTextureLoaded(tile);
|
mapRenderer.isTileTextureLoaded(tile);
|
||||||
}, tileSource, tileGrid, projection);
|
}, tileSource, projection);
|
||||||
var findLoadedTiles = goog.bind(tileSource.findLoadedTiles, tileSource,
|
var findLoadedTiles = goog.bind(tileSource.findLoadedTiles, tileSource,
|
||||||
tilesToDrawByZ, getTileIfLoaded);
|
tilesToDrawByZ, getTileIfLoaded);
|
||||||
|
|
||||||
@@ -214,7 +214,7 @@ ol.renderer.webgl.TileLayer.prototype.renderFrame =
|
|||||||
for (x = tileRange.minX; x <= tileRange.maxX; ++x) {
|
for (x = tileRange.minX; x <= tileRange.maxX; ++x) {
|
||||||
for (y = tileRange.minY; y <= tileRange.maxY; ++y) {
|
for (y = tileRange.minY; y <= tileRange.maxY; ++y) {
|
||||||
|
|
||||||
tile = tileSource.getTile(z, x, y, tileGrid, projection);
|
tile = tileSource.getTile(z, x, y, projection);
|
||||||
tileState = tile.getState();
|
tileState = tile.getState();
|
||||||
if (tileState == ol.TileState.LOADED) {
|
if (tileState == ol.TileState.LOADED) {
|
||||||
if (mapRenderer.isTileTextureLoaded(tile)) {
|
if (mapRenderer.isTileTextureLoaded(tile)) {
|
||||||
|
|||||||
@@ -103,7 +103,9 @@ ol.source.BingMaps.prototype.handleImageryMetadataResponse =
|
|||||||
var imageUrl = resource.imageUrl
|
var imageUrl = resource.imageUrl
|
||||||
.replace('{subdomain}', subdomain)
|
.replace('{subdomain}', subdomain)
|
||||||
.replace('{culture}', culture);
|
.replace('{culture}', culture);
|
||||||
return function(tileCoord) {
|
return function(tileCoord, projection) {
|
||||||
|
goog.asserts.assert(ol.projection.equivalent(
|
||||||
|
projection, this.getProjection()));
|
||||||
if (goog.isNull(tileCoord)) {
|
if (goog.isNull(tileCoord)) {
|
||||||
return undefined;
|
return undefined;
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -87,16 +87,14 @@ ol.source.ImageTileSource.prototype.expireCache = function(usedTiles) {
|
|||||||
/**
|
/**
|
||||||
* @inheritDoc
|
* @inheritDoc
|
||||||
*/
|
*/
|
||||||
ol.source.ImageTileSource.prototype.getTile =
|
ol.source.ImageTileSource.prototype.getTile = function(z, x, y, projection) {
|
||||||
function(z, x, y, tileGrid, projection) {
|
|
||||||
var tileCoordKey = ol.TileCoord.getKeyZXY(z, x, y);
|
var tileCoordKey = ol.TileCoord.getKeyZXY(z, x, y);
|
||||||
if (this.tileCache_.containsKey(tileCoordKey)) {
|
if (this.tileCache_.containsKey(tileCoordKey)) {
|
||||||
return /** @type {!ol.Tile} */ (this.tileCache_.get(tileCoordKey));
|
return /** @type {!ol.Tile} */ (this.tileCache_.get(tileCoordKey));
|
||||||
} else {
|
} else {
|
||||||
goog.asserts.assert(tileGrid);
|
|
||||||
goog.asserts.assert(projection);
|
goog.asserts.assert(projection);
|
||||||
var tileCoord = new ol.TileCoord(z, x, y);
|
var tileCoord = new ol.TileCoord(z, x, y);
|
||||||
var tileUrl = this.tileUrlFunction(tileCoord, tileGrid, projection);
|
var tileUrl = this.tileUrlFunction(tileCoord, projection);
|
||||||
var tile = new ol.ImageTile(
|
var tile = new ol.ImageTile(
|
||||||
tileCoord,
|
tileCoord,
|
||||||
goog.isDef(tileUrl) ? ol.TileState.IDLE : ol.TileState.EMPTY,
|
goog.isDef(tileUrl) ? ol.TileState.IDLE : ol.TileState.EMPTY,
|
||||||
|
|||||||
@@ -42,7 +42,11 @@ ol.source.TiledWMS = function(tiledWMSOptions) {
|
|||||||
tiledWMSOptions.params['TRANSPARENT'] : true;
|
tiledWMSOptions.params['TRANSPARENT'] : true;
|
||||||
var extent = tiledWMSOptions.extent;
|
var extent = tiledWMSOptions.extent;
|
||||||
|
|
||||||
var tileCoordTransform = function(tileCoord, tileGrid, projection) {
|
var tileCoordTransform = function(tileCoord, projection) {
|
||||||
|
var tileGrid = this.getTileGrid();
|
||||||
|
if (goog.isNull(tileGrid)) {
|
||||||
|
tileGrid = ol.tilegrid.getForProjection(projection);
|
||||||
|
}
|
||||||
if (tileGrid.getResolutions().length <= tileCoord.z) {
|
if (tileGrid.getResolutions().length <= tileCoord.z) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -124,7 +124,6 @@ ol.source.TileSource.prototype.getResolutions = function() {
|
|||||||
* @param {number} z Tile coordinate z.
|
* @param {number} z Tile coordinate z.
|
||||||
* @param {number} x Tile coordinate x.
|
* @param {number} x Tile coordinate x.
|
||||||
* @param {number} y Tile coordinate y.
|
* @param {number} y Tile coordinate y.
|
||||||
* @param {ol.tilegrid.TileGrid=} opt_tileGrid Tile grid.
|
|
||||||
* @param {ol.Projection=} opt_projection Projection.
|
* @param {ol.Projection=} opt_projection Projection.
|
||||||
* @return {!ol.Tile} Tile.
|
* @return {!ol.Tile} Tile.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -112,7 +112,9 @@ ol.source.WMTS = function(wmtsOptions) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
tileUrlFunction = ol.TileUrlFunction.withTileCoordTransform(
|
tileUrlFunction = ol.TileUrlFunction.withTileCoordTransform(
|
||||||
function(tileCoord, tileGrid, projection) {
|
function(tileCoord, projection) {
|
||||||
|
var tileGrid = this.getTileGrid();
|
||||||
|
goog.asserts.assert(!goog.isNull(tileGrid));
|
||||||
if (tileGrid.getResolutions().length <= tileCoord.z) {
|
if (tileGrid.getResolutions().length <= tileCoord.z) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
+18
-14
@@ -4,11 +4,10 @@ goog.provide('ol.TileUrlFunctionType');
|
|||||||
goog.require('goog.array');
|
goog.require('goog.array');
|
||||||
goog.require('goog.math');
|
goog.require('goog.math');
|
||||||
goog.require('ol.TileCoord');
|
goog.require('ol.TileCoord');
|
||||||
goog.require('ol.tilegrid.TileGrid');
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @typedef {function(this:ol.source.Source, ol.TileCoord, ol.tilegrid.TileGrid,
|
* @typedef {function(this:ol.source.ImageTileSource, ol.TileCoord,
|
||||||
* ol.Projection): (string|undefined)}
|
* ol.Projection): (string|undefined)}
|
||||||
*/
|
*/
|
||||||
ol.TileUrlFunctionType;
|
ol.TileUrlFunctionType;
|
||||||
@@ -49,12 +48,12 @@ ol.TileUrlFunction.createFromTileUrlFunctions = function(tileUrlFunctions) {
|
|||||||
if (tileUrlFunctions.length === 1) {
|
if (tileUrlFunctions.length === 1) {
|
||||||
return tileUrlFunctions[0];
|
return tileUrlFunctions[0];
|
||||||
}
|
}
|
||||||
return function(tileCoord, tileGrid, projection) {
|
return function(tileCoord, projection) {
|
||||||
if (goog.isNull(tileCoord)) {
|
if (goog.isNull(tileCoord)) {
|
||||||
return undefined;
|
return undefined;
|
||||||
} else {
|
} else {
|
||||||
var index = goog.math.modulo(tileCoord.hash(), tileUrlFunctions.length);
|
var index = goog.math.modulo(tileCoord.hash(), tileUrlFunctions.length);
|
||||||
return tileUrlFunctions[index](tileCoord, tileGrid, projection);
|
return tileUrlFunctions[index].call(this, tileCoord, projection);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -63,20 +62,24 @@ ol.TileUrlFunction.createFromTileUrlFunctions = function(tileUrlFunctions) {
|
|||||||
/**
|
/**
|
||||||
* @param {string} baseUrl Base URL (may have query data).
|
* @param {string} baseUrl Base URL (may have query data).
|
||||||
* @param {Object.<string,*>} params to encode in the url.
|
* @param {Object.<string,*>} params to encode in the url.
|
||||||
* @param {function(string, Object.<string,*>, ol.Extent, ol.Size,
|
* @param {function(this: ol.source.ImageTileSource, string, Object.<string,*>,
|
||||||
* ol.Projection)} paramsFunction params function.
|
* ol.Extent, ol.Size, ol.Projection)} paramsFunction params function.
|
||||||
* @return {ol.TileUrlFunctionType} Tile URL function.
|
* @return {ol.TileUrlFunctionType} Tile URL function.
|
||||||
*/
|
*/
|
||||||
ol.TileUrlFunction.createFromParamsFunction =
|
ol.TileUrlFunction.createFromParamsFunction =
|
||||||
function(baseUrl, params, paramsFunction) {
|
function(baseUrl, params, paramsFunction) {
|
||||||
return function(tileCoord, tileGrid, projection) {
|
return function(tileCoord, projection) {
|
||||||
if (goog.isNull(tileCoord)) {
|
if (goog.isNull(tileCoord)) {
|
||||||
return undefined;
|
return undefined;
|
||||||
} else {
|
} else {
|
||||||
|
var tileGrid = this.getTileGrid();
|
||||||
|
if (goog.isNull(tileGrid)) {
|
||||||
|
tileGrid = ol.tilegrid.getForProjection(projection);
|
||||||
|
}
|
||||||
var size = tileGrid.getTileSize(tileCoord.z);
|
var size = tileGrid.getTileSize(tileCoord.z);
|
||||||
var extent = tileGrid.getTileCoordExtent(tileCoord);
|
var extent = tileGrid.getTileCoordExtent(tileCoord);
|
||||||
return paramsFunction(
|
return paramsFunction.call(this, baseUrl, params,
|
||||||
baseUrl, params, extent, size, projection);
|
extent, size, projection);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -84,27 +87,28 @@ ol.TileUrlFunction.createFromParamsFunction =
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {ol.TileCoord} tileCoord Tile coordinate.
|
* @param {ol.TileCoord} tileCoord Tile coordinate.
|
||||||
|
* @param {ol.Projection} projection Projection.
|
||||||
* @return {string|undefined} Tile URL.
|
* @return {string|undefined} Tile URL.
|
||||||
*/
|
*/
|
||||||
ol.TileUrlFunction.nullTileUrlFunction = function(tileCoord) {
|
ol.TileUrlFunction.nullTileUrlFunction = function(tileCoord, projection) {
|
||||||
return undefined;
|
return undefined;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {function(ol.TileCoord, ol.tilegrid.TileGrid, ol.Projection):
|
* @param {function(this:ol.source.ImageTileSource, ol.TileCoord,
|
||||||
* ol.TileCoord} transformFn Transform.function.
|
* ol.Projection) : ol.TileCoord} transformFn Transform function.
|
||||||
* @param {ol.TileUrlFunctionType} tileUrlFunction Tile URL function.
|
* @param {ol.TileUrlFunctionType} tileUrlFunction Tile URL function.
|
||||||
* @return {ol.TileUrlFunctionType} Tile URL function.
|
* @return {ol.TileUrlFunctionType} Tile URL function.
|
||||||
*/
|
*/
|
||||||
ol.TileUrlFunction.withTileCoordTransform =
|
ol.TileUrlFunction.withTileCoordTransform =
|
||||||
function(transformFn, tileUrlFunction) {
|
function(transformFn, tileUrlFunction) {
|
||||||
return function(tileCoord, tileGrid, projection) {
|
return function(tileCoord, projection) {
|
||||||
if (goog.isNull(tileCoord)) {
|
if (goog.isNull(tileCoord)) {
|
||||||
return undefined;
|
return undefined;
|
||||||
} else {
|
} else {
|
||||||
return tileUrlFunction.call(this,
|
return tileUrlFunction.call(this,
|
||||||
transformFn(tileCoord, tileGrid, projection), tileGrid, projection);
|
transformFn.call(this, tileCoord, projection), projection);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -5,35 +5,32 @@ describe('ol.source.wms', function() {
|
|||||||
describe('ol.source.wms.getUrl', function() {
|
describe('ol.source.wms.getUrl', function() {
|
||||||
it('creates expected URL', function() {
|
it('creates expected URL', function() {
|
||||||
var epsg3857 = ol.projection.get('EPSG:3857');
|
var epsg3857 = ol.projection.get('EPSG:3857');
|
||||||
var tileGrid = ol.tilegrid.getForProjection(epsg3857);
|
var extent = new ol.Extent(
|
||||||
var tileUrlFunction = ol.TileUrlFunction.createFromParamsFunction(
|
-20037508.342789244, -20037508.342789244, 0, 0);
|
||||||
'http://wms', {'foo': 'bar'}, ol.source.wms.getUrl);
|
|
||||||
var tileCoord = new ol.TileCoord(1, 0, 0);
|
|
||||||
var tileUrl = tileUrlFunction(tileCoord, tileGrid, epsg3857);
|
|
||||||
var expected = 'http://wms?SERVICE=WMS&VERSION=1.3.0&REQUEST=' +
|
var expected = 'http://wms?SERVICE=WMS&VERSION=1.3.0&REQUEST=' +
|
||||||
'GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&WIDTH=256&HEIGHT=256&' +
|
'GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&WIDTH=256&HEIGHT=256&' +
|
||||||
'foo=bar&STYLES=&CRS=EPSG%3A3857&BBOX=' +
|
'foo=bar&STYLES=&CRS=EPSG%3A3857&BBOX=' +
|
||||||
'-20037508.342789244%2C-20037508.342789244%2C0%2C0';
|
'-20037508.342789244%2C-20037508.342789244%2C0%2C0';
|
||||||
expect(tileUrl).to.eql(expected);
|
var url = ol.source.wms.getUrl('http://wms', {'foo': 'bar'},
|
||||||
|
extent, new ol.Size(256, 256), epsg3857);
|
||||||
|
expect(url).to.eql(expected);
|
||||||
});
|
});
|
||||||
it('creates expected URL respecting axis orientation', function() {
|
it('creates expected URL respecting axis orientation', function() {
|
||||||
var epsg4326 = ol.projection.get('EPSG:4326');
|
var epsg4326 = ol.projection.get('EPSG:4326');
|
||||||
var tileGrid = ol.tilegrid.getForProjection(epsg4326);
|
var extent = new ol.Extent(-180, -90, 0, 90);
|
||||||
var tileUrlFunction = ol.TileUrlFunction.createFromParamsFunction(
|
|
||||||
'http://wms', {'foo': 'bar'}, ol.source.wms.getUrl);
|
|
||||||
var tileCoord = new ol.TileCoord(1, 0, 0);
|
|
||||||
var tileUrl = tileUrlFunction(tileCoord, tileGrid, epsg4326);
|
|
||||||
var expected = 'http://wms?SERVICE=WMS&VERSION=1.3.0&REQUEST=' +
|
var expected = 'http://wms?SERVICE=WMS&VERSION=1.3.0&REQUEST=' +
|
||||||
'GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&WIDTH=256&HEIGHT=256&' +
|
'GetMap&FORMAT=image%2Fpng&TRANSPARENT=true&WIDTH=256&HEIGHT=256&' +
|
||||||
'foo=bar&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);
|
var url = ol.source.wms.getUrl('http://wms', {'foo': 'bar'},
|
||||||
|
extent, new ol.Size(256, 256), epsg4326);
|
||||||
|
expect(url).to.eql(expected);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
goog.require('ol.TileCoord');
|
goog.require('ol.Extent');
|
||||||
goog.require('ol.TileUrlFunction');
|
goog.require('ol.Size');
|
||||||
goog.require('ol.projection');
|
goog.require('ol.projection');
|
||||||
goog.require('ol.source.wms');
|
goog.require('ol.source.wms');
|
||||||
|
|||||||
@@ -81,12 +81,13 @@ describe('ol.TileUrlFunction', function() {
|
|||||||
describe('createFromParamsFunction', function() {
|
describe('createFromParamsFunction', function() {
|
||||||
var paramsFunction = function(url, params) { return arguments; };
|
var paramsFunction = function(url, params) { return arguments; };
|
||||||
var projection = ol.projection.get('EPSG:3857');
|
var projection = ol.projection.get('EPSG:3857');
|
||||||
|
var fakeTileSource = {getTileGrid: function() {return null;}};
|
||||||
var params = {foo: 'bar'};
|
var params = {foo: 'bar'};
|
||||||
var tileUrlFunction = ol.TileUrlFunction.createFromParamsFunction(
|
var tileUrlFunction = ol.TileUrlFunction.createFromParamsFunction(
|
||||||
'url', params, paramsFunction);
|
'url', params, paramsFunction);
|
||||||
it('calls the passed function with the correct arguments', function() {
|
it('calls the passed function with the correct arguments', function() {
|
||||||
var args = tileUrlFunction(new ol.TileCoord(0, 0, 0),
|
var args = tileUrlFunction.call(fakeTileSource,
|
||||||
ol.tilegrid.getForProjection(projection), projection);
|
new ol.TileCoord(0, 0, 0), projection);
|
||||||
expect(args[0]).to.eql('url');
|
expect(args[0]).to.eql('url');
|
||||||
expect(args[1]).to.be(params);
|
expect(args[1]).to.be(params);
|
||||||
expect(args[2]).to.eql(projection.getExtent());
|
expect(args[2]).to.eql(projection.getExtent());
|
||||||
|
|||||||
Reference in New Issue
Block a user