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

@@ -10,10 +10,11 @@ import Event from '../events/Event.js';
import EventType from '../events/EventType.js';
import {Processor} from 'pixelworks/lib/index';
import {equals, getCenter, getHeight, getWidth} from '../extent.js';
import LayerType from '../LayerType.js';
import Layer from '../layer/Layer.js';
import ImageLayer from '../layer/Image.js';
import TileLayer from '../layer/Tile.js';
import {assign} from '../obj.js';
import CanvasLayerRenderer from '../renderer/canvas/Layer.js';
import CanvasImageLayerRenderer from '../renderer/canvas/ImageLayer.js';
import CanvasTileLayerRenderer from '../renderer/canvas/TileLayer.js';
import ImageSource from '../source/Image.js';
@@ -112,7 +113,8 @@ inherits(RasterSourceEvent, Event);
/**
* @typedef {Object} Options
* @property {Array.<module:ol/source/Source|module:ol/renderer/canvas/Layer>} sources Input sources.
* @property {Array.<module:ol/source/Source|module:ol/layer/Layer>} sources Input
* sources or layers. Vector layers must be configured with `renderMode: 'image'`.
* @property {module:ol/source/Raster~Operation} [operation] Raster operation.
* The operation will be called with data from input sources
* and the output will be assigned to the raster source.
@@ -490,8 +492,9 @@ function createRenderer(source) {
renderer = createImageRenderer(source);
} else if (source instanceof TileLayer) {
renderer = new CanvasTileLayerRenderer(source);
} else if (source instanceof CanvasLayerRenderer) {
renderer = source;
} else if (source instanceof Layer &&
(source.getType() == LayerType.IMAGE || source.getType() == LayerType.VECTOR)) {
renderer = new CanvasImageLayerRenderer(source);
}
return renderer;
}