From 2907fc3297fd2dc193cd54dc6e8175c976289e62 Mon Sep 17 00:00:00 2001 From: Andreas Hocevar Date: Mon, 11 Sep 2017 22:14:56 +0200 Subject: [PATCH 1/3] Remove duplicate test --- test/spec/ol/vectorimagetile.test.js | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/test/spec/ol/vectorimagetile.test.js b/test/spec/ol/vectorimagetile.test.js index 0984a5ecef..5fc8ee5fd5 100644 --- a/test/spec/ol/vectorimagetile.test.js +++ b/test/spec/ol/vectorimagetile.test.js @@ -32,23 +32,6 @@ describe('ol.VectorImageTile', function() { }); }); - it('sets LOADED state when source tiles fail to load', function(done) { - var format = new ol.format.GeoJSON(); - var url = 'spec/ol/data/unavailable.json'; - var tile = new ol.VectorImageTile([0, 0, -1], 0, url, format, - ol.VectorImageTile.defaultLoadFunction, [0, 0, -1], function() { - return url; - }, ol.tilegrid.createXYZ(), ol.tilegrid.createXYZ(), {}, - 1, ol.proj.get('EPSG:3857'), ol.VectorTile, function() {}); - - tile.load(); - - ol.events.listen(tile, 'change', function(e) { - expect(tile.getState()).to.be(ol.TileState.EMPTY); - done(); - }); - }); - it('sets LOADED state when previously failed source tiles are loaded', function(done) { var format = new ol.format.GeoJSON(); var url = 'spec/ol/data/unavailable.json'; From b65c6f7e8e15cbd39ab5f0186beffa0d26ea1087 Mon Sep 17 00:00:00 2001 From: Andreas Hocevar Date: Mon, 11 Sep 2017 22:15:42 +0200 Subject: [PATCH 2/3] Use ERROR instead of EMPTY state when source tiles have ERROR state --- src/ol/vectorimagetile.js | 2 +- test/spec/ol/vectorimagetile.test.js | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/ol/vectorimagetile.js b/src/ol/vectorimagetile.js index 2b8a2b0210..b3c34808aa 100644 --- a/src/ol/vectorimagetile.js +++ b/src/ol/vectorimagetile.js @@ -273,7 +273,7 @@ ol.VectorImageTile.prototype.finishLoading_ = function() { this.loadListenerKeys_.forEach(ol.events.unlistenByKey); this.loadListenerKeys_.length = 0; } - this.setState(loaded > 0 ? ol.TileState.LOADED : ol.TileState.EMPTY); + this.setState(loaded > 0 ? ol.TileState.LOADED : ol.TileState.ERROR); }; diff --git a/test/spec/ol/vectorimagetile.test.js b/test/spec/ol/vectorimagetile.test.js index 5fc8ee5fd5..98823000fb 100644 --- a/test/spec/ol/vectorimagetile.test.js +++ b/test/spec/ol/vectorimagetile.test.js @@ -49,7 +49,7 @@ describe('ol.VectorImageTile', function() { var calls = 0; ol.events.listen(tile, 'change', function(e) { ++calls; - expect(tile.getState()).to.be(calls == 2 ? ol.TileState.LOADED : ol.TileState.EMPTY); + expect(tile.getState()).to.be(calls == 2 ? ol.TileState.LOADED : ol.TileState.ERROR); if (calls == 2) { done(); } else { @@ -60,7 +60,7 @@ describe('ol.VectorImageTile', function() { }); }); - it('sets EMPTY state when all source tiles fail to load', function(done) { + it('sets ERROR state when source tiles fail to load', function(done) { var format = new ol.format.GeoJSON(); var url = 'spec/ol/data/unavailable.json'; var tile = new ol.VectorImageTile([0, 0, -1], 0, url, format, @@ -72,7 +72,7 @@ describe('ol.VectorImageTile', function() { tile.load(); ol.events.listen(tile, 'change', function(e) { - expect(tile.getState()).to.be(ol.TileState.EMPTY); + expect(tile.getState()).to.be(ol.TileState.ERROR); done(); }); }); From 8573a7ba6498d6239470e306dbad611feaef69a0 Mon Sep 17 00:00:00 2001 From: Andreas Hocevar Date: Mon, 11 Sep 2017 22:40:12 +0200 Subject: [PATCH 3/3] Only set LOADED state when all source tiles loaded successfully --- src/ol/vectorimagetile.js | 8 +++++++- test/rendering/ol/layer/vectortile.test.js | 1 - 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/ol/vectorimagetile.js b/src/ol/vectorimagetile.js index b3c34808aa..4c3545ef26 100644 --- a/src/ol/vectorimagetile.js +++ b/src/ol/vectorimagetile.js @@ -263,17 +263,23 @@ ol.VectorImageTile.prototype.load = function() { */ ol.VectorImageTile.prototype.finishLoading_ = function() { var loaded = this.tileKeys.length; + var empty = 0; for (var i = loaded - 1; i >= 0; --i) { var state = this.getTile(this.tileKeys[i]).getState(); if (state != ol.TileState.LOADED) { --loaded; } + if (state == ol.TileState.EMPTY) { + ++empty; + } } if (loaded == this.tileKeys.length) { this.loadListenerKeys_.forEach(ol.events.unlistenByKey); this.loadListenerKeys_.length = 0; + this.setState(ol.TileState.LOADED); + } else { + this.setState(empty == this.tileKeys.length ? ol.TileState.EMPTY : ol.TileState.ERROR); } - this.setState(loaded > 0 ? ol.TileState.LOADED : ol.TileState.ERROR); }; diff --git a/test/rendering/ol/layer/vectortile.test.js b/test/rendering/ol/layer/vectortile.test.js index 0d5d20301f..24e591dfe0 100644 --- a/test/rendering/ol/layer/vectortile.test.js +++ b/test/rendering/ol/layer/vectortile.test.js @@ -65,7 +65,6 @@ describe('ol.rendering.layer.VectorTile', function() { source = new ol.source.VectorTile({ format: new ol.format.MVT(), tileGrid: ol.tilegrid.createXYZ(), - tilePixelRatio: 16, url: 'rendering/ol/data/tiles/mvt/{z}-{x}-{y}.vector.pbf' }); });