Pass transformed tile coordinates to the tileUrlFunction
This commit is contained in:
@@ -5,7 +5,6 @@ goog.require('ol');
|
||||
goog.require('ol.ImageTile');
|
||||
goog.require('ol.TileCoord');
|
||||
goog.require('ol.TileState');
|
||||
goog.require('ol.TileUrlFunction');
|
||||
goog.require('ol.dom');
|
||||
goog.require('ol.proj');
|
||||
goog.require('ol.source.TileImage');
|
||||
@@ -88,35 +87,35 @@ ol.source.Zoomify = function(opt_options) {
|
||||
resolutions.reverse();
|
||||
|
||||
var tileGrid = new ol.tilegrid.Zoomify({
|
||||
extent: [0, 0, size[0], size[1]],
|
||||
resolutions: resolutions
|
||||
});
|
||||
|
||||
var url = options.url;
|
||||
var tileUrlFunction = ol.TileUrlFunction.withTileCoordTransform(
|
||||
tileGrid.createTileCoordTransform({extent: [0, 0, size[0], size[1]]}),
|
||||
/**
|
||||
* @this {ol.source.TileImage}
|
||||
* @param {ol.TileCoord} tileCoord Tile Coordinate.
|
||||
* @param {number} pixelRatio Pixel ratio.
|
||||
* @param {ol.proj.Projection} projection Projection.
|
||||
* @return {string|undefined} Tile URL.
|
||||
*/
|
||||
function(tileCoord, pixelRatio, projection) {
|
||||
if (goog.isNull(tileCoord)) {
|
||||
return undefined;
|
||||
} else {
|
||||
var tileCoordZ = tileCoord[0];
|
||||
var tileCoordX = tileCoord[1];
|
||||
var tileCoordY = tileCoord[2];
|
||||
var tileIndex =
|
||||
tileCoordX +
|
||||
tileCoordY * tierSizeInTiles[tileCoordZ][0] +
|
||||
tileCountUpToTier[tileCoordZ];
|
||||
var tileGroup = (tileIndex / ol.DEFAULT_TILE_SIZE) | 0;
|
||||
return url + 'TileGroup' + tileGroup + '/' +
|
||||
tileCoordZ + '-' + tileCoordX + '-' + tileCoordY + '.jpg';
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* @this {ol.source.TileImage}
|
||||
* @param {ol.TileCoord} tileCoord Tile Coordinate.
|
||||
* @param {number} pixelRatio Pixel ratio.
|
||||
* @param {ol.proj.Projection} projection Projection.
|
||||
* @return {string|undefined} Tile URL.
|
||||
*/
|
||||
function tileUrlFunction(tileCoord, pixelRatio, projection) {
|
||||
if (goog.isNull(tileCoord)) {
|
||||
return undefined;
|
||||
} else {
|
||||
var tileCoordZ = tileCoord[0];
|
||||
var tileCoordX = tileCoord[1];
|
||||
var tileCoordY = tileCoord[2];
|
||||
var tileIndex =
|
||||
tileCoordX +
|
||||
tileCoordY * tierSizeInTiles[tileCoordZ][0] +
|
||||
tileCountUpToTier[tileCoordZ];
|
||||
var tileGroup = (tileIndex / ol.DEFAULT_TILE_SIZE) | 0;
|
||||
return url + 'TileGroup' + tileGroup + '/' +
|
||||
tileCoordZ + '-' + tileCoordX + '-' + tileCoordY + '.jpg';
|
||||
}
|
||||
}
|
||||
|
||||
goog.base(this, {
|
||||
attributions: options.attributions,
|
||||
|
||||
Reference in New Issue
Block a user