Compare commits

...

2 Commits

Author SHA1 Message Date
Lutz Helm
5272cf092c Ensure descending size order also works for level 0 2023-10-10 14:04:31 +02:00
Lutz Helm
b92a428e88 Sort levelSizes instead of sizes 2023-10-10 14:02:44 +02:00
2 changed files with 21 additions and 4 deletions

View File

@ -145,7 +145,7 @@ $.IIIFTileSource = function( options ){
if( this.sizes ) { if( this.sizes ) {
var sizeLength = this.sizes.length; var sizeLength = this.sizes.length;
if ( (sizeLength === options.maxLevel) || (sizeLength === options.maxLevel + 1) ) { if ( (sizeLength === options.maxLevel) || (sizeLength === options.maxLevel + 1) ) {
this.levelSizes = this.sizes; this.levelSizes = this.sizes.slice().sort(( size1, size2 ) => size1.width - size2.width);
// Need to take into account that the list may or may not include the full resolution size // Need to take into account that the list may or may not include the full resolution size
if( sizeLength === options.maxLevel ) { if( sizeLength === options.maxLevel ) {
this.levelSizes.push( {width: this.width, height: this.height} ); this.levelSizes.push( {width: this.width, height: this.height} );
@ -269,9 +269,6 @@ $.extend( $.IIIFTileSource.prototype, $.TileSource.prototype, /** @lends OpenSea
} }
} }
} }
data.sizes = data.sizes && data.sizes.sort(
( size1, size2 ) => size1.width - size2.width
);
return data; return data;
} }
}, },

View File

@ -107,6 +107,21 @@
], ],
"profile": "level0" "profile": "level0"
}, },
infoJson3level0WithTiles = {
"@context": "http://iiif.io/api/image/3/context.json",
"id": id,
"width": 2000,
"height": 1000,
"tiles": [
{ "width": 256, "scaleFactors": [ 2, 4, 1 ] }
],
"sizes": [
{ width: 2000, height: 1000 },
{ width: 1000, height: 500 },
{ width: 500, height: 250 }
],
"profile": "level0"
},
infoJson3level0ContextExtension = { infoJson3level0ContextExtension = {
"@context": [ "@context": [
"http://iiif.io/api/image/3/context.json", "http://iiif.io/api/image/3/context.json",
@ -253,6 +268,11 @@
assert.equal(source2Level0.getTileUrl(0, 0, 0), "http://example.com/identifier/full/1000,/0/default.jpg"); assert.equal(source2Level0.getTileUrl(0, 0, 0), "http://example.com/identifier/full/1000,/0/default.jpg");
assert.equal(source2Level0.getTileUrl(1, 0, 0), "http://example.com/identifier/full/2000,/0/default.jpg"); assert.equal(source2Level0.getTileUrl(1, 0, 0), "http://example.com/identifier/full/2000,/0/default.jpg");
var source3Level0WithTiles = getSource(infoJson3level0WithTiles);
assert.equal(source3Level0WithTiles.getTileUrl(0, 0, 0), "http://example.com/identifier/0,0,1024,1000/256,250/0/default.jpg");
assert.equal(source3Level0WithTiles.getTileUrl(1, 1, 0), "http://example.com/identifier/512,0,512,512/256,256/0/default.jpg");
assert.equal(source3Level0WithTiles.getTileUrl(2, 0, 0), "http://example.com/identifier/0,0,256,256/256,256/0/default.jpg");
var source3Level1 = getSource(infoJson3level1); var source3Level1 = getSource(infoJson3level1);
assert.equal(source3Level1.getTileUrl(0, 0, 0), "http://example.com/identifier/full/8,4/0/default.jpg"); assert.equal(source3Level1.getTileUrl(0, 0, 0), "http://example.com/identifier/full/8,4/0/default.jpg");
assert.equal(source3Level1.getTileUrl(7, 0, 0), "http://example.com/identifier/0,0,1024,1000/512,500/0/default.jpg"); assert.equal(source3Level1.getTileUrl(7, 0, 0), "http://example.com/identifier/0,0,1024,1000/512,500/0/default.jpg");