From 29ebdde3142aac39b2c766ea9f1869986d365642 Mon Sep 17 00:00:00 2001 From: Andreas Hocevar Date: Sun, 22 Oct 2017 15:02:55 +0200 Subject: [PATCH] Test decluttering for vector tile layers --- .../expected/vectortile-canvas-declutter.png | Bin 0 -> 2981 bytes test/rendering/ol/layer/vectortile.test.js | 37 +++++++++++++++++- 2 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 test/rendering/ol/layer/expected/vectortile-canvas-declutter.png diff --git a/test/rendering/ol/layer/expected/vectortile-canvas-declutter.png b/test/rendering/ol/layer/expected/vectortile-canvas-declutter.png new file mode 100644 index 0000000000000000000000000000000000000000..2f44b10f35a3a449df22e8f0c8d5dbb94cfab942 GIT binary patch literal 2981 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 XC&@VoSd|6;{RW)=aseCc{jU8N%kgzc literal 0 HcmV?d00001 diff --git a/test/rendering/ol/layer/vectortile.test.js b/test/rendering/ol/layer/vectortile.test.js index 0568e46701..12291b135e 100644 --- a/test/rendering/ol/layer/vectortile.test.js +++ b/test/rendering/ol/layer/vectortile.test.js @@ -6,6 +6,10 @@ goog.require('ol.format.MVT'); goog.require('ol.layer.VectorTile'); goog.require('ol.obj'); goog.require('ol.source.VectorTile'); +goog.require('ol.style.Circle'); +goog.require('ol.style.Fill'); +goog.require('ol.style.Style'); +goog.require('ol.style.Text'); goog.require('ol.tilegrid'); @@ -13,10 +17,11 @@ describe('ol.rendering.layer.VectorTile', function() { var map; - function createMap(renderer, opt_pixelRatio) { + function createMap(renderer, opt_pixelRatio, opt_size) { + var size = opt_size || 50; map = new ol.Map({ pixelRatio: opt_pixelRatio || 1, - target: createMapDiv(50, 50), + target: createMapDiv(size, size), renderer: renderer, view: new ol.View({ center: [1825927.7316762917, 6143091.089223046], @@ -104,6 +109,34 @@ describe('ol.rendering.layer.VectorTile', function() { }); }); + it('declutters text and images', function(done) { + createMap('canvas', 1, 100); + map.getView().setZoom(13.8); + var style = function(feature, resolution) { + var geom = feature.getGeometry(); + if (geom.getType() == 'Point') { + return new ol.style.Style({ + image: new ol.style.Circle({ + radius: 7, + fill: new ol.style.Fill({ + color: 'red' + }) + }), + text: new ol.style.Text({ + text: feature.get('name_en'), + font: '12px sans-serif', + textBaseline: 'bottom', + offsetY: -7 + }) + }); + } + }; + waitForTiles(source, {declutter: true, style: style}, function() { + expectResemble(map, 'rendering/ol/layer/expected/vectortile-canvas-declutter.png', + 8.5, done); + }); + }); + }); });