Tidy up ol.source.Zoomify tile grid calculations

This commit is contained in:
Tom Payne
2014-01-02 13:56:17 +01:00
parent 36826d2e0b
commit 94fa3fb211

View File

@@ -25,40 +25,32 @@ ol.source.Zoomify = function(opt_options) {
var options = goog.isDef(opt_options) ? opt_options : {};
var size = options.size;
var imageWidth = size[0];
var imageHeight = size[1];
var imageSize = size.slice();
var tiles = [
Math.ceil(imageSize[0] / ol.DEFAULT_TILE_SIZE),
Math.ceil(imageSize[1] / ol.DEFAULT_TILE_SIZE)
];
var tierSizeInTiles = [tiles];
while (imageSize[0] > ol.DEFAULT_TILE_SIZE ||
imageSize[1] > ol.DEFAULT_TILE_SIZE) {
imageSize = [
Math.floor(imageSize[0] / 2),
Math.floor(imageSize[1] / 2)
];
tiles = [
Math.ceil(imageSize[0] / ol.DEFAULT_TILE_SIZE),
Math.ceil(imageSize[1] / ol.DEFAULT_TILE_SIZE)
];
tierSizeInTiles.push(tiles);
var tierSizeInTiles = [];
var tileSize = ol.DEFAULT_TILE_SIZE;
while (imageWidth > tileSize || imageHeight > tileSize) {
tierSizeInTiles.push([
Math.ceil(imageWidth / tileSize),
Math.ceil(imageHeight / tileSize)
]);
tileSize += tileSize;
}
tierSizeInTiles.push([1, 1]);
tierSizeInTiles.reverse();
var numberOfTiers = tierSizeInTiles.length;
var resolutions = [1];
var tileCountUpToTier = [0];
var i;
for (i = 1; i < numberOfTiers; i++) {
resolutions.unshift(Math.pow(2, i));
var i, ii;
for (i = 1, ii = tierSizeInTiles.length; i < ii; i++) {
resolutions.push(1 << i);
tileCountUpToTier.push(
tierSizeInTiles[i - 1][0] * tierSizeInTiles[i - 1][1] +
tileCountUpToTier[i - 1]
);
}
resolutions.reverse();
var createFromUrl = function(url) {
var template = url + '{tileIndex}/{z}-{x}-{y}.jpg';