Canvas layer renderers are now dependencies of layers
This commit is contained in:
@@ -5,11 +5,7 @@ import PluggableMap from './PluggableMap.js';
|
|||||||
import {defaults as defaultControls} from './control/util.js';
|
import {defaults as defaultControls} from './control/util.js';
|
||||||
import {defaults as defaultInteractions} from './interaction.js';
|
import {defaults as defaultInteractions} from './interaction.js';
|
||||||
import {assign} from './obj.js';
|
import {assign} from './obj.js';
|
||||||
import CanvasImageLayerRenderer from './renderer/canvas/ImageLayer.js';
|
|
||||||
import CanvasMapRenderer from './renderer/canvas/Map.js';
|
import CanvasMapRenderer from './renderer/canvas/Map.js';
|
||||||
import CanvasTileLayerRenderer from './renderer/canvas/TileLayer.js';
|
|
||||||
import CanvasVectorLayerRenderer from './renderer/canvas/VectorLayer.js';
|
|
||||||
import CanvasVectorTileLayerRenderer from './renderer/canvas/VectorTileLayer.js';
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @classdesc
|
* @classdesc
|
||||||
@@ -80,14 +76,7 @@ class Map extends PluggableMap {
|
|||||||
}
|
}
|
||||||
|
|
||||||
createRenderer() {
|
createRenderer() {
|
||||||
const renderer = new CanvasMapRenderer(this);
|
return new CanvasMapRenderer(this);
|
||||||
renderer.registerLayerRenderers([
|
|
||||||
CanvasImageLayerRenderer,
|
|
||||||
CanvasTileLayerRenderer,
|
|
||||||
CanvasVectorLayerRenderer,
|
|
||||||
CanvasVectorTileLayerRenderer
|
|
||||||
]);
|
|
||||||
return renderer;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
* @module ol/renderer/canvas/ImageLayer
|
* @module ol/renderer/canvas/ImageLayer
|
||||||
*/
|
*/
|
||||||
import {ENABLE_RASTER_REPROJECTION} from '../../reproj/common.js';
|
import {ENABLE_RASTER_REPROJECTION} from '../../reproj/common.js';
|
||||||
import LayerType from '../../LayerType.js';
|
|
||||||
import ViewHint from '../../ViewHint.js';
|
import ViewHint from '../../ViewHint.js';
|
||||||
import {getIntersection, isEmpty} from '../../extent.js';
|
import {getIntersection, isEmpty} from '../../extent.js';
|
||||||
import IntermediateCanvasRenderer from './IntermediateCanvas.js';
|
import IntermediateCanvasRenderer from './IntermediateCanvas.js';
|
||||||
@@ -114,25 +113,4 @@ class CanvasImageLayerRenderer extends IntermediateCanvasRenderer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Determine if this renderer handles the provided layer.
|
|
||||||
* @param {import("../../layer/Layer.js").default} layer The candidate layer.
|
|
||||||
* @return {boolean} The renderer can render the layer.
|
|
||||||
*/
|
|
||||||
CanvasImageLayerRenderer['handles'] = function(layer) {
|
|
||||||
return layer.getType() === LayerType.IMAGE;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a layer renderer.
|
|
||||||
* @param {import("../Map.js").default} mapRenderer The map renderer.
|
|
||||||
* @param {import("../../layer/Layer.js").default} layer The layer to be rendererd.
|
|
||||||
* @return {CanvasImageLayerRenderer} The layer renderer.
|
|
||||||
*/
|
|
||||||
CanvasImageLayerRenderer['create'] = function(mapRenderer, layer) {
|
|
||||||
return new CanvasImageLayerRenderer(/** @type {import("../../layer/Image.js").default} */ (layer));
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
export default CanvasImageLayerRenderer;
|
export default CanvasImageLayerRenderer;
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
* @module ol/renderer/canvas/Map
|
* @module ol/renderer/canvas/Map
|
||||||
*/
|
*/
|
||||||
import {create as createTransform, apply as applyTransform, compose as composeTransform} from '../../transform.js';
|
import {create as createTransform, apply as applyTransform, compose as composeTransform} from '../../transform.js';
|
||||||
import {includes, stableSort} from '../../array.js';
|
import {stableSort} from '../../array.js';
|
||||||
import {CLASS_UNSELECTABLE} from '../../css.js';
|
import {CLASS_UNSELECTABLE} from '../../css.js';
|
||||||
import {createCanvasContext2D} from '../../dom.js';
|
import {createCanvasContext2D} from '../../dom.js';
|
||||||
import {visibleAtResolution} from '../../layer/Layer.js';
|
import {visibleAtResolution} from '../../layer/Layer.js';
|
||||||
@@ -14,11 +14,6 @@ import MapRenderer, {sortByZIndex} from '../Map.js';
|
|||||||
import SourceState from '../../source/State.js';
|
import SourceState from '../../source/State.js';
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @type {Array<typeof import("../Layer.js").default>}
|
|
||||||
*/
|
|
||||||
export const layerRendererConstructors = [];
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @classdesc
|
* @classdesc
|
||||||
* Canvas map renderer.
|
* Canvas map renderer.
|
||||||
@@ -204,18 +199,6 @@ class CanvasMapRenderer extends MapRenderer {
|
|||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @inheritDoc
|
|
||||||
*/
|
|
||||||
registerLayerRenderers(constructors) {
|
|
||||||
super.registerLayerRenderers(constructors);
|
|
||||||
for (let i = 0, ii = constructors.length; i < ii; ++i) {
|
|
||||||
const ctor = constructors[i];
|
|
||||||
if (!includes(layerRendererConstructors, ctor)) {
|
|
||||||
layerRendererConstructors.push(ctor);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
* @module ol/renderer/canvas/TileLayer
|
* @module ol/renderer/canvas/TileLayer
|
||||||
*/
|
*/
|
||||||
import {getUid} from '../../util.js';
|
import {getUid} from '../../util.js';
|
||||||
import LayerType from '../../LayerType.js';
|
|
||||||
import TileRange from '../../TileRange.js';
|
import TileRange from '../../TileRange.js';
|
||||||
import TileState from '../../TileState.js';
|
import TileState from '../../TileState.js';
|
||||||
import ViewHint from '../../ViewHint.js';
|
import ViewHint from '../../ViewHint.js';
|
||||||
@@ -369,27 +368,6 @@ class CanvasTileLayerRenderer extends IntermediateCanvasRenderer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Determine if this renderer handles the provided layer.
|
|
||||||
* @param {import("../../layer/Layer.js").default} layer The candidate layer.
|
|
||||||
* @return {boolean} The renderer can render the layer.
|
|
||||||
*/
|
|
||||||
CanvasTileLayerRenderer['handles'] = function(layer) {
|
|
||||||
return layer.getType() === LayerType.TILE;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a layer renderer.
|
|
||||||
* @param {import("../Map.js").default} mapRenderer The map renderer.
|
|
||||||
* @param {import("../../layer/Layer.js").default} layer The layer to be rendererd.
|
|
||||||
* @return {CanvasTileLayerRenderer} The layer renderer.
|
|
||||||
*/
|
|
||||||
CanvasTileLayerRenderer['create'] = function(mapRenderer, layer) {
|
|
||||||
return new CanvasTileLayerRenderer(/** @type {import("../../layer/Tile.js").default} */ (layer));
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @function
|
* @function
|
||||||
* @return {import("../../layer/Tile.js").default|import("../../layer/VectorTile.js").default}
|
* @return {import("../../layer/Tile.js").default|import("../../layer/VectorTile.js").default}
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
* @module ol/renderer/canvas/VectorLayer
|
* @module ol/renderer/canvas/VectorLayer
|
||||||
*/
|
*/
|
||||||
import {getUid} from '../../util.js';
|
import {getUid} from '../../util.js';
|
||||||
import LayerType from '../../LayerType.js';
|
|
||||||
import ViewHint from '../../ViewHint.js';
|
import ViewHint from '../../ViewHint.js';
|
||||||
import {createCanvasContext2D} from '../../dom.js';
|
import {createCanvasContext2D} from '../../dom.js';
|
||||||
import {listen, unlisten} from '../../events.js';
|
import {listen, unlisten} from '../../events.js';
|
||||||
@@ -413,25 +412,4 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Determine if this renderer handles the provided layer.
|
|
||||||
* @param {import("../../layer/Layer.js").default} layer The candidate layer.
|
|
||||||
* @return {boolean} The renderer can render the layer.
|
|
||||||
*/
|
|
||||||
CanvasVectorLayerRenderer['handles'] = function(layer) {
|
|
||||||
return layer.getType() === LayerType.VECTOR;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a layer renderer.
|
|
||||||
* @param {import("../Map.js").default} mapRenderer The map renderer.
|
|
||||||
* @param {import("../../layer/Layer.js").default} layer The layer to be rendererd.
|
|
||||||
* @return {CanvasVectorLayerRenderer} The layer renderer.
|
|
||||||
*/
|
|
||||||
CanvasVectorLayerRenderer['create'] = function(mapRenderer, layer) {
|
|
||||||
return new CanvasVectorLayerRenderer(/** @type {import("../../layer/Vector.js").default} */ (layer));
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
export default CanvasVectorLayerRenderer;
|
export default CanvasVectorLayerRenderer;
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
* @module ol/renderer/canvas/VectorTileLayer
|
* @module ol/renderer/canvas/VectorTileLayer
|
||||||
*/
|
*/
|
||||||
import {getUid} from '../../util.js';
|
import {getUid} from '../../util.js';
|
||||||
import LayerType from '../../LayerType.js';
|
|
||||||
import TileState from '../../TileState.js';
|
import TileState from '../../TileState.js';
|
||||||
import ViewHint from '../../ViewHint.js';
|
import ViewHint from '../../ViewHint.js';
|
||||||
import {createCanvasContext2D} from '../../dom.js';
|
import {createCanvasContext2D} from '../../dom.js';
|
||||||
@@ -481,25 +480,4 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Determine if this renderer handles the provided layer.
|
|
||||||
* @param {import("../../layer/Layer.js").default} layer The candidate layer.
|
|
||||||
* @return {boolean} The renderer can render the layer.
|
|
||||||
*/
|
|
||||||
CanvasVectorTileLayerRenderer['handles'] = function(layer) {
|
|
||||||
return layer.getType() === LayerType.VECTOR_TILE;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a layer renderer.
|
|
||||||
* @param {import("../Map.js").default} mapRenderer The map renderer.
|
|
||||||
* @param {import("../../layer/Layer.js").default} layer The layer to be rendererd.
|
|
||||||
* @return {CanvasVectorTileLayerRenderer} The layer renderer.
|
|
||||||
*/
|
|
||||||
CanvasVectorTileLayerRenderer['create'] = function(mapRenderer, layer) {
|
|
||||||
return new CanvasVectorTileLayerRenderer(/** @type {import("../../layer/VectorTile.js").default} */ (layer));
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
export default CanvasVectorTileLayerRenderer;
|
export default CanvasVectorTileLayerRenderer;
|
||||||
|
|||||||
Reference in New Issue
Block a user