From 3157ccb2f210d91b06565e8d1f640e07d297fc54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Rutkowski?= Date: Thu, 21 Jul 2016 09:53:47 +0200 Subject: [PATCH] Update TileWMS.coordKeyPrefix_ on setUrls Outdated coordKeyPrefix_ causes the TileWMS layer to flicker on the first updateParams call. --- src/ol/source/tilewmssource.js | 8 ++++++++ test/spec/ol/source/tilewmssource.test.js | 13 +++++++++++++ 2 files changed, 21 insertions(+) diff --git a/src/ol/source/tilewmssource.js b/src/ol/source/tilewmssource.js index cc27a31c00..9d5d407878 100644 --- a/src/ol/source/tilewmssource.js +++ b/src/ol/source/tilewmssource.js @@ -355,6 +355,14 @@ ol.source.TileWMS.prototype.fixedTileUrlFunction = function(tileCoord, pixelRati pixelRatio, projection, baseParams); }; +/** + * @inheritDoc + */ +ol.source.TileWMS.prototype.setUrls = function(urls) { + ol.source.TileImage.prototype.setUrls.call(this, urls); + this.resetCoordKeyPrefix_(); +}; + /** * Update the user-provided params. diff --git a/test/spec/ol/source/tilewmssource.test.js b/test/spec/ol/source/tilewmssource.test.js index e662139da2..a879b09ec4 100644 --- a/test/spec/ol/source/tilewmssource.test.js +++ b/test/spec/ol/source/tilewmssource.test.js @@ -265,6 +265,19 @@ describe('ol.source.TileWMS', function() { var tileUrl = source.tileUrlFunction([0, 0, 0], 1, ol.proj.get('EPSG:4326')); expect(tileUrl.indexOf(url)).to.be(0); }); + + describe('#setUrls()', function() { + it ('resets coordKeyPrefix_', function() { + var urls = ['u1', 'u2']; + var source1 = new ol.source.TileWMS({ + urls: urls + }); + var source2 = new ol.source.TileWMS({}); + expect(source2.coordKeyPrefix_).to.be.empty(); + source2.setUrls(urls); + expect(source2.coordKeyPrefix_).to.equal(source1.coordKeyPrefix_); + }); + }); });