diff --git a/src/ol/layer/MapboxVector.js b/src/ol/layer/MapboxVector.js index d1928b41da..9c151f7d5a 100644 --- a/src/ol/layer/MapboxVector.js +++ b/src/ol/layer/MapboxVector.js @@ -81,7 +81,7 @@ class ErrorEvent extends BaseEvent { * Recommended value: Vector tiles are usually generated with a buffer, so this value should match * the largest possible buffer of the used tiles. It should be at least the size of the largest * point symbol or line width. - * @property {import("./VectorTileRenderType.js").default|string} [renderMode='hybrid'] Render mode for vector tiles: + * @property {import("./VectorTile.js").VectorTileRenderType} [renderMode='hybrid'] Render mode for vector tiles: * * `'hybrid'`: Polygon and line elements are rendered as images, so pixels are scaled during zoom * animations. Point symbols and texts are accurately rendered as vectors and can stay upright on * rotated views. diff --git a/src/ol/layer/VectorTile.js b/src/ol/layer/VectorTile.js index 5c0238c68d..eed3e67d3a 100644 --- a/src/ol/layer/VectorTile.js +++ b/src/ol/layer/VectorTile.js @@ -4,7 +4,6 @@ import BaseVectorLayer from './BaseVector.js'; import CanvasVectorTileLayerRenderer from '../renderer/canvas/VectorTileLayer.js'; import TileProperty from './TileProperty.js'; -import VectorTileRenderType from './VectorTileRenderType.js'; import {assert} from '../asserts.js'; /*** @@ -17,6 +16,10 @@ import {assert} from '../asserts.js'; * 'change:source'|'change:preload'|'change:useInterimTilesOnError'|import("../render/EventType").LayerRenderEventTypes, Return>} VectorTileLayerOnSignature */ +/** + * @typedef {'hybrid' | 'vector'} VectorTileRenderType + */ + /** * @typedef {Object} Options * @property {string} [className='ol-layer'] A CSS class name to set to the layer element. @@ -44,7 +47,7 @@ import {assert} from '../asserts.js'; * Recommended value: Vector tiles are usually generated with a buffer, so this value should match * the largest possible buffer of the used tiles. It should be at least the size of the largest * point symbol or line width. - * @property {import("./VectorTileRenderType.js").default|string} [renderMode='hybrid'] Render mode for vector tiles: + * @property {VectorTileRenderType} [renderMode='hybrid'] Render mode for vector tiles: * * `'hybrid'`: Polygon and line elements are rendered as images, so pixels are scaled during zoom * animations. Point symbols and texts are accurately rendered as vectors and can stay upright on * rotated views. @@ -126,16 +129,13 @@ class VectorTileLayer extends BaseVectorLayer { */ this.un; - const renderMode = options.renderMode || VectorTileRenderType.HYBRID; - assert( - renderMode == VectorTileRenderType.HYBRID || - renderMode == VectorTileRenderType.VECTOR, - 28 - ); // `renderMode` must be `'hybrid'` or `'vector'`. + const renderMode = options.renderMode || 'hybrid'; + // `renderMode` must be `'hybrid'` or `'vector'`. + assert(renderMode == 'hybrid' || renderMode == 'vector', 28); /** * @private - * @type {import("./VectorTileRenderType.js").default} + * @type {VectorTileRenderType} */ this.renderMode_ = renderMode; @@ -184,7 +184,7 @@ class VectorTileLayer extends BaseVectorLayer { } /** - * @return {import("./VectorTileRenderType.js").default} The render mode. + * @return {VectorTileRenderType} The render mode. */ getRenderMode() { return this.renderMode_; diff --git a/src/ol/layer/VectorTileRenderType.js b/src/ol/layer/VectorTileRenderType.js deleted file mode 100644 index 7a8ce37fa9..0000000000 --- a/src/ol/layer/VectorTileRenderType.js +++ /dev/null @@ -1,26 +0,0 @@ -/** - * @module ol/layer/VectorTileRenderType - */ - -/** - * @enum {string} - * Render mode for vector tiles: - * @api - */ -export default { - /** - * Polygon and line elements are rendered as images, so pixels - * are scaled during zoom animations. Point symbols and texts are accurately - * rendered as vectors and can stay upright on rotated views. - * @api - */ - HYBRID: 'hybrid', - /** - * Everything is rendered as vectors. Use this mode for improved - * performance on vector tile layers with only a few rendered features (e.g. - * for highlighting a subset of features of another layer with the same - * source). - * @api - */ - VECTOR: 'vector', -}; diff --git a/src/ol/renderer/canvas/VectorTileLayer.js b/src/ol/renderer/canvas/VectorTileLayer.js index a421db526e..660454212d 100644 --- a/src/ol/renderer/canvas/VectorTileLayer.js +++ b/src/ol/renderer/canvas/VectorTileLayer.js @@ -5,7 +5,6 @@ import CanvasBuilderGroup from '../../render/canvas/BuilderGroup.js'; import CanvasExecutorGroup from '../../render/canvas/ExecutorGroup.js'; import CanvasTileLayerRenderer from './TileLayer.js'; import TileState from '../../TileState.js'; -import VectorTileRenderType from '../../layer/VectorTileRenderType.js'; import ViewHint from '../../ViewHint.js'; import { HIT_DETECT_RESOLUTION, @@ -139,7 +138,7 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer { if ( render && (hifi || Date.now() - frameState.time < 8) && - layer.getRenderMode() !== VectorTileRenderType.VECTOR + layer.getRenderMode() !== 'vector' ) { this.renderTileImage_(tile, frameState); } @@ -154,7 +153,7 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer { const layer = this.getLayer(); return ( super.isDrawableTile(tile) && - (layer.getRenderMode() === VectorTileRenderType.VECTOR + (layer.getRenderMode() === 'vector' ? getUid(layer) in tile.executorGroups : tile.hasContext(layer)) ); @@ -289,7 +288,7 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer { const executorGroupInstructions = builderGroup.finish(); // no need to clip when the render tile is covered by a single source tile const replayExtent = - layer.getRenderMode() !== VectorTileRenderType.VECTOR && + layer.getRenderMode() !== 'vector' && declutter && sourceTiles.length === 1 ? null @@ -784,7 +783,7 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer { const layer = /** @type {import("../../layer/VectorTile.js").default} */ ( this.getLayer() ); - if (layer.getRenderMode() === VectorTileRenderType.VECTOR) { + if (layer.getRenderMode() === 'vector') { return false; } const replayState = tile.getReplayState(layer); diff --git a/test/browser/spec/ol/renderer/canvas/vectortilelayer.test.js b/test/browser/spec/ol/renderer/canvas/vectortilelayer.test.js index 9b83fd8292..286e3e9098 100644 --- a/test/browser/spec/ol/renderer/canvas/vectortilelayer.test.js +++ b/test/browser/spec/ol/renderer/canvas/vectortilelayer.test.js @@ -11,7 +11,6 @@ import TileState from '../../../../../../src/ol/TileState.js'; import VectorRenderTile from '../../../../../../src/ol/VectorRenderTile.js'; import VectorTile from '../../../../../../src/ol/VectorTile.js'; import VectorTileLayer from '../../../../../../src/ol/layer/VectorTile.js'; -import VectorTileRenderType from '../../../../../../src/ol/layer/VectorTileRenderType.js'; import VectorTileSource from '../../../../../../src/ol/source/VectorTile.js'; import View from '../../../../../../src/ol/View.js'; import XYZ from '../../../../../../src/ol/source/XYZ.js'; @@ -124,7 +123,7 @@ describe('ol/renderer/canvas/VectorTileLayer', function () { it('does not render images for pure vector rendering', function () { const testLayer = new VectorTileLayer({ - renderMode: VectorTileRenderType.VECTOR, + renderMode: 'vector', source: source, style: layerStyle, }); diff --git a/test/rendering/cases/layer-vectortile-rendermode-vector-opacity/main.js b/test/rendering/cases/layer-vectortile-rendermode-vector-opacity/main.js index dfff3a9fb5..eac90bf2a6 100644 --- a/test/rendering/cases/layer-vectortile-rendermode-vector-opacity/main.js +++ b/test/rendering/cases/layer-vectortile-rendermode-vector-opacity/main.js @@ -1,7 +1,6 @@ import MVT from '../../../../src/ol/format/MVT.js'; import Map from '../../../../src/ol/Map.js'; import VectorTileLayer from '../../../../src/ol/layer/VectorTile.js'; -import VectorTileRenderType from '../../../../src/ol/layer/VectorTileRenderType.js'; import VectorTileSource from '../../../../src/ol/source/VectorTile.js'; import View from '../../../../src/ol/View.js'; import {createXYZ} from '../../../../src/ol/tilegrid.js'; @@ -9,7 +8,7 @@ import {createXYZ} from '../../../../src/ol/tilegrid.js'; new Map({ layers: [ new VectorTileLayer({ - renderMode: VectorTileRenderType.VECTOR, + renderMode: 'vector', opacity: 0.1, source: new VectorTileSource({ format: new MVT(), diff --git a/test/rendering/cases/layer-vectortile-rendermode-vector/main.js b/test/rendering/cases/layer-vectortile-rendermode-vector/main.js index 8e762e1217..c4205564a9 100644 --- a/test/rendering/cases/layer-vectortile-rendermode-vector/main.js +++ b/test/rendering/cases/layer-vectortile-rendermode-vector/main.js @@ -1,7 +1,6 @@ import MVT from '../../../../src/ol/format/MVT.js'; import Map from '../../../../src/ol/Map.js'; import VectorTileLayer from '../../../../src/ol/layer/VectorTile.js'; -import VectorTileRenderType from '../../../../src/ol/layer/VectorTileRenderType.js'; import VectorTileSource from '../../../../src/ol/source/VectorTile.js'; import View from '../../../../src/ol/View.js'; import {createXYZ} from '../../../../src/ol/tilegrid.js'; @@ -9,7 +8,7 @@ import {createXYZ} from '../../../../src/ol/tilegrid.js'; new Map({ layers: [ new VectorTileLayer({ - renderMode: VectorTileRenderType.VECTOR, + renderMode: 'vector', source: new VectorTileSource({ format: new MVT(), tileGrid: createXYZ(),