From 9e37467f45ff195243836c1dc9318d8fdea0a365 Mon Sep 17 00:00:00 2001 From: Ansis Brammanis Date: Wed, 12 Sep 2018 14:28:10 -0400 Subject: [PATCH] fix missing repeats of CanvasSource when it crosses the antimeridian (#7273) fix #7271 --- src/geo/transform.js | 18 +++++-- .../mapbox-gl-js#7271/expected.png | Bin 0 -> 57305 bytes .../regressions/mapbox-gl-js#7271/style.json | 48 ++++++++++++++++++ test/unit/geo/transform.test.js | 2 +- 4 files changed, 62 insertions(+), 6 deletions(-) create mode 100644 test/integration/render-tests/regressions/mapbox-gl-js#7271/expected.png create mode 100644 test/integration/render-tests/regressions/mapbox-gl-js#7271/style.json diff --git a/src/geo/transform.js b/src/geo/transform.js index 98b94d33dd8..acda6fc631b 100644 --- a/src/geo/transform.js +++ b/src/geo/transform.js @@ -201,13 +201,21 @@ class Transform { * @private */ getVisibleUnwrappedCoordinates(tileID: CanonicalTileID) { - const ul = this.pointCoordinate(new Point(0, 0), 0); - const ur = this.pointCoordinate(new Point(this.width, 0), 0); - const w0 = Math.floor(ul.column); - const w1 = Math.floor(ur.column); const result = [new UnwrappedTileID(0, tileID)]; if (this._renderWorldCopies) { - for (let w = w0; w <= w1; w++) { + const utl = this.pointCoordinate(new Point(0, 0), 0); + const utr = this.pointCoordinate(new Point(this.width, 0), 0); + const ubl = this.pointCoordinate(new Point(this.width, this.height), 0); + const ubr = this.pointCoordinate(new Point(0, this.height), 0); + const w0 = Math.floor(Math.min(utl.column, utr.column, ubl.column, ubr.column)); + const w1 = Math.floor(Math.max(utl.column, utr.column, ubl.column, ubr.column)); + + // Add an extra copy of the world on each side to properly render ImageSources and CanvasSources. + // Both sources draw outside the tile boundaries of the tile that "contains them" so we need + // to add extra copies on both sides in case offscreen tiles need to draw into on-screen ones. + const extraWorldCopy = 1; + + for (let w = w0 - extraWorldCopy; w <= w1 + extraWorldCopy; w++) { if (w === 0) continue; result.push(new UnwrappedTileID(w, tileID)); } diff --git a/test/integration/render-tests/regressions/mapbox-gl-js#7271/expected.png b/test/integration/render-tests/regressions/mapbox-gl-js#7271/expected.png new file mode 100644 index 0000000000000000000000000000000000000000..fa168b2454fe578a41c5e5d5d96a4bb4852fd22d GIT binary patch literal 57305 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 M+0l(&YtQ2R4|nU-WdHyG literal 0 HcmV?d00001 diff --git a/test/integration/render-tests/regressions/mapbox-gl-js#7271/style.json b/test/integration/render-tests/regressions/mapbox-gl-js#7271/style.json new file mode 100644 index 00000000000..2b2fc291cf6 --- /dev/null +++ b/test/integration/render-tests/regressions/mapbox-gl-js#7271/style.json @@ -0,0 +1,48 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 512, + "height": 64 + } + }, + "center": [ + -10, + 0 + ], + "zoom": 0, + "sources": { + "image": { + "type": "image", + "coordinates": [ + [ + -270, + -80 + ], + [ + 90, + -80 + ], + [ + 90, + 80 + ], + [ + -270, + 80 + ] + ], + "url": "local://image/0.png" + } + }, + "layers": [ + { + "id": "image", + "type": "raster", + "source": "image", + "paint": { + "raster-fade-duration": 0 + } + } + ] +} diff --git a/test/unit/geo/transform.test.js b/test/unit/geo/transform.test.js index 07e857ed3d5..c6d24a9bc79 100644 --- a/test/unit/geo/transform.test.js +++ b/test/unit/geo/transform.test.js @@ -247,7 +247,7 @@ test('transform', (t) => { transform.center = { lng: -170.01, lat: 0.01 }; let unwrappedCoords = transform.getVisibleUnwrappedCoordinates(new CanonicalTileID(0, 0, 0)); - t.equal(unwrappedCoords.length, 2); + t.equal(unwrappedCoords.length, 4); //getVisibleUnwrappedCoordinates should honor _renderWorldCopies transform._renderWorldCopies = false;