diff --git a/src/ol/source/GeoTIFF.js b/src/ol/source/GeoTIFF.js index 5888d52075..07ec7e6b91 100644 --- a/src/ol/source/GeoTIFF.js +++ b/src/ol/source/GeoTIFF.js @@ -667,12 +667,11 @@ class GeoTIFFSource extends DataTile { } } - const additionalBands = this.addAlpha_ ? 1 : 0; - this.bandCount = - samplesPerPixel.reduce((accumulator, value) => { - accumulator += value; - return accumulator; - }, 0) + additionalBands; + let bandCount = this.addAlpha_ ? 1 : 0; + for (let sourceIndex = 0; sourceIndex < sourceCount; ++sourceIndex) { + bandCount += samplesPerPixel[sourceIndex]; + } + this.bandCount = bandCount; const tileGrid = new TileGrid({ extent: extent, @@ -687,12 +686,19 @@ class GeoTIFFSource extends DataTile { this.setLoader(this.loadTile_.bind(this)); this.setState('ready'); + + let zoom = 0; + if (resolutions.length === 1) { + resolutions = [resolutions[0] * 2, resolutions[0]]; + zoom = 1; + } this.viewResolver({ + showFullExtent: true, projection: this.projection, resolutions: resolutions, center: toUserCoordinate(getCenter(extent), this.projection), extent: toUserExtent(extent, this.projection), - zoom: 0, + zoom: zoom, }); } diff --git a/test/browser/spec/ol/source/GeoTIFF.test.js b/test/browser/spec/ol/source/GeoTIFF.test.js index 45e780a1df..8db17f449a 100644 --- a/test/browser/spec/ol/source/GeoTIFF.test.js +++ b/test/browser/spec/ol/source/GeoTIFF.test.js @@ -140,7 +140,8 @@ describe('ol/source/GeoTIFF', function () { expect(projection.getUnits()).to.be('degrees'); expect(viewOptions.extent).to.eql([-180, -90, 180, 90]); expect(viewOptions.center).to.eql([0, 0]); - expect(viewOptions.resolutions).to.eql([0.703125]); + expect(viewOptions.resolutions).to.eql([1.40625, 0.703125]); + expect(viewOptions.showFullExtent).to.be(true); done(); }); }); diff --git a/test/rendering/cases/cog-f32-nodata-explicit-nan/expected.png b/test/rendering/cases/cog-f32-nodata-explicit-nan/expected.png index 5da98cb39e..4f07a908f1 100644 Binary files a/test/rendering/cases/cog-f32-nodata-explicit-nan/expected.png and b/test/rendering/cases/cog-f32-nodata-explicit-nan/expected.png differ diff --git a/test/rendering/cases/cog-f32-nodata/expected.png b/test/rendering/cases/cog-f32-nodata/expected.png index 064d844abd..51a852bcdf 100644 Binary files a/test/rendering/cases/cog-f32-nodata/expected.png and b/test/rendering/cases/cog-f32-nodata/expected.png differ diff --git a/test/rendering/cases/cog-i16-nodata/expected.png b/test/rendering/cases/cog-i16-nodata/expected.png index 064d844abd..51a852bcdf 100644 Binary files a/test/rendering/cases/cog-i16-nodata/expected.png and b/test/rendering/cases/cog-i16-nodata/expected.png differ diff --git a/test/rendering/cases/cog-masked/expected.png b/test/rendering/cases/cog-masked/expected.png index 8a5ec720c1..9abc445dc1 100644 Binary files a/test/rendering/cases/cog-masked/expected.png and b/test/rendering/cases/cog-masked/expected.png differ diff --git a/test/rendering/cases/webgl-tile-aspect-ratio/expected.png b/test/rendering/cases/webgl-tile-aspect-ratio/expected.png index 10f0cbda6d..8f1f1522b5 100644 Binary files a/test/rendering/cases/webgl-tile-aspect-ratio/expected.png and b/test/rendering/cases/webgl-tile-aspect-ratio/expected.png differ