Merge pull request #8229 from ahocevar/raster-from-vectorlayer

Support layers instead of renderers for ol/source/Raster
This commit is contained in:
Andreas Hocevar
2018-05-28 22:15:02 +02:00
committed by GitHub
5 changed files with 48 additions and 69 deletions

View File

@@ -23,17 +23,18 @@ describe('ol.renderer.canvas.ImageLayer', function() {
});
imageRenderer = new CanvasImageLayerRenderer(layer);
vectorRenderer = new CanvasVectorLayerRenderer(layer);
imageRenderer.vectorRenderer_ = vectorRenderer;
});
afterEach(function() {
vectorRenderer.dispose();
imageRenderer.dispose();
vectorRenderer.dispose();
layer.dispose();
});
it('cleans up CanvasVectorRenderer', function() {
const vectorRenderer = imageRenderer.vectorRenderer_;
const spy = sinon.spy(vectorRenderer, 'dispose');
imageRenderer.setVectorRenderer(vectorRenderer);
imageRenderer.dispose();
expect(spy.called).to.be(true);
});
@@ -94,36 +95,6 @@ describe('ol.renderer.canvas.ImageLayer', function() {
});
});
describe('#setVectorRenderer()', function() {
let layer, imageRenderer, vectorRenderer1, vectorRenderer2;
beforeEach(function() {
layer = new VectorLayer({
renderMode: 'image',
source: new VectorSource()
});
imageRenderer = new CanvasImageLayerRenderer(layer);
vectorRenderer1 = new CanvasVectorLayerRenderer(layer);
vectorRenderer2 = new CanvasVectorLayerRenderer(layer);
});
afterEach(function() {
layer.dispose();
vectorRenderer1.dispose();
vectorRenderer2.dispose();
imageRenderer.dispose();
});
it('cleans up an existing vectorRenderer', function() {
const spy = sinon.spy(vectorRenderer1, 'dispose');
imageRenderer.setVectorRenderer(vectorRenderer1);
expect(spy.called).to.be(false);
imageRenderer.setVectorRenderer(vectorRenderer2);
expect(spy.called).to.be(true);
});
});
describe('Vector image rendering', function() {
let map, div, layer;

View File

@@ -1,9 +1,7 @@
import Map from '../../../../src/ol/Map.js';
import TileState from '../../../../src/ol/TileState.js';
import View from '../../../../src/ol/View.js';
import ImageLayerRenderer from '../../../../src/ol/renderer/canvas/ImageLayer.js';
import ImageLayer from '../../../../src/ol/layer/Image.js';
import VectorLayerRenderer from '../../../../src/ol/renderer/canvas/VectorLayer.js';
import VectorLayer from '../../../../src/ol/layer/Vector.js';
import Projection from '../../../../src/ol/proj/Projection.js';
import Static from '../../../../src/ol/source/ImageStatic.js';
@@ -49,7 +47,8 @@ where('Uint8ClampedArray').describe('ol.source.Raster', function() {
imageExtent: extent
});
blueSource = new ImageLayerRenderer(new VectorLayer({
blueSource = new VectorLayer({
renderMode: 'image',
source: new VectorSource({
features: [new Feature(new Point([0, 0]))]
}),
@@ -59,8 +58,7 @@ where('Uint8ClampedArray').describe('ol.source.Raster', function() {
fill: new Fill({color: 'blue'})
})
})
}));
blueSource.setVectorRenderer(new VectorLayerRenderer(blueSource.getLayer()));
});
raster = new RasterSource({
threads: 0,