Replace VectorTileRenderType enum with typedef
This commit is contained in:
@@ -81,7 +81,7 @@ class ErrorEvent extends BaseEvent {
|
|||||||
* Recommended value: Vector tiles are usually generated with a buffer, so this value should match
|
* 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
|
* the largest possible buffer of the used tiles. It should be at least the size of the largest
|
||||||
* point symbol or line width.
|
* 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
|
* * `'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
|
* animations. Point symbols and texts are accurately rendered as vectors and can stay upright on
|
||||||
* rotated views.
|
* rotated views.
|
||||||
|
|||||||
@@ -4,7 +4,6 @@
|
|||||||
import BaseVectorLayer from './BaseVector.js';
|
import BaseVectorLayer from './BaseVector.js';
|
||||||
import CanvasVectorTileLayerRenderer from '../renderer/canvas/VectorTileLayer.js';
|
import CanvasVectorTileLayerRenderer from '../renderer/canvas/VectorTileLayer.js';
|
||||||
import TileProperty from './TileProperty.js';
|
import TileProperty from './TileProperty.js';
|
||||||
import VectorTileRenderType from './VectorTileRenderType.js';
|
|
||||||
import {assert} from '../asserts.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
|
* 'change:source'|'change:preload'|'change:useInterimTilesOnError'|import("../render/EventType").LayerRenderEventTypes, Return>} VectorTileLayerOnSignature
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @typedef {'hybrid' | 'vector'} VectorTileRenderType
|
||||||
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @typedef {Object} Options
|
* @typedef {Object} Options
|
||||||
* @property {string} [className='ol-layer'] A CSS class name to set to the layer element.
|
* @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
|
* 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
|
* the largest possible buffer of the used tiles. It should be at least the size of the largest
|
||||||
* point symbol or line width.
|
* 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
|
* * `'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
|
* animations. Point symbols and texts are accurately rendered as vectors and can stay upright on
|
||||||
* rotated views.
|
* rotated views.
|
||||||
@@ -126,16 +129,13 @@ class VectorTileLayer extends BaseVectorLayer {
|
|||||||
*/
|
*/
|
||||||
this.un;
|
this.un;
|
||||||
|
|
||||||
const renderMode = options.renderMode || VectorTileRenderType.HYBRID;
|
const renderMode = options.renderMode || 'hybrid';
|
||||||
assert(
|
// `renderMode` must be `'hybrid'` or `'vector'`.
|
||||||
renderMode == VectorTileRenderType.HYBRID ||
|
assert(renderMode == 'hybrid' || renderMode == 'vector', 28);
|
||||||
renderMode == VectorTileRenderType.VECTOR,
|
|
||||||
28
|
|
||||||
); // `renderMode` must be `'hybrid'` or `'vector'`.
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @private
|
* @private
|
||||||
* @type {import("./VectorTileRenderType.js").default}
|
* @type {VectorTileRenderType}
|
||||||
*/
|
*/
|
||||||
this.renderMode_ = renderMode;
|
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() {
|
getRenderMode() {
|
||||||
return this.renderMode_;
|
return this.renderMode_;
|
||||||
|
|||||||
@@ -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',
|
|
||||||
};
|
|
||||||
@@ -5,7 +5,6 @@ import CanvasBuilderGroup from '../../render/canvas/BuilderGroup.js';
|
|||||||
import CanvasExecutorGroup from '../../render/canvas/ExecutorGroup.js';
|
import CanvasExecutorGroup from '../../render/canvas/ExecutorGroup.js';
|
||||||
import CanvasTileLayerRenderer from './TileLayer.js';
|
import CanvasTileLayerRenderer from './TileLayer.js';
|
||||||
import TileState from '../../TileState.js';
|
import TileState from '../../TileState.js';
|
||||||
import VectorTileRenderType from '../../layer/VectorTileRenderType.js';
|
|
||||||
import ViewHint from '../../ViewHint.js';
|
import ViewHint from '../../ViewHint.js';
|
||||||
import {
|
import {
|
||||||
HIT_DETECT_RESOLUTION,
|
HIT_DETECT_RESOLUTION,
|
||||||
@@ -139,7 +138,7 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer {
|
|||||||
if (
|
if (
|
||||||
render &&
|
render &&
|
||||||
(hifi || Date.now() - frameState.time < 8) &&
|
(hifi || Date.now() - frameState.time < 8) &&
|
||||||
layer.getRenderMode() !== VectorTileRenderType.VECTOR
|
layer.getRenderMode() !== 'vector'
|
||||||
) {
|
) {
|
||||||
this.renderTileImage_(tile, frameState);
|
this.renderTileImage_(tile, frameState);
|
||||||
}
|
}
|
||||||
@@ -154,7 +153,7 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer {
|
|||||||
const layer = this.getLayer();
|
const layer = this.getLayer();
|
||||||
return (
|
return (
|
||||||
super.isDrawableTile(tile) &&
|
super.isDrawableTile(tile) &&
|
||||||
(layer.getRenderMode() === VectorTileRenderType.VECTOR
|
(layer.getRenderMode() === 'vector'
|
||||||
? getUid(layer) in tile.executorGroups
|
? getUid(layer) in tile.executorGroups
|
||||||
: tile.hasContext(layer))
|
: tile.hasContext(layer))
|
||||||
);
|
);
|
||||||
@@ -289,7 +288,7 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer {
|
|||||||
const executorGroupInstructions = builderGroup.finish();
|
const executorGroupInstructions = builderGroup.finish();
|
||||||
// no need to clip when the render tile is covered by a single source tile
|
// no need to clip when the render tile is covered by a single source tile
|
||||||
const replayExtent =
|
const replayExtent =
|
||||||
layer.getRenderMode() !== VectorTileRenderType.VECTOR &&
|
layer.getRenderMode() !== 'vector' &&
|
||||||
declutter &&
|
declutter &&
|
||||||
sourceTiles.length === 1
|
sourceTiles.length === 1
|
||||||
? null
|
? null
|
||||||
@@ -784,7 +783,7 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer {
|
|||||||
const layer = /** @type {import("../../layer/VectorTile.js").default} */ (
|
const layer = /** @type {import("../../layer/VectorTile.js").default} */ (
|
||||||
this.getLayer()
|
this.getLayer()
|
||||||
);
|
);
|
||||||
if (layer.getRenderMode() === VectorTileRenderType.VECTOR) {
|
if (layer.getRenderMode() === 'vector') {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
const replayState = tile.getReplayState(layer);
|
const replayState = tile.getReplayState(layer);
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ import TileState from '../../../../../../src/ol/TileState.js';
|
|||||||
import VectorRenderTile from '../../../../../../src/ol/VectorRenderTile.js';
|
import VectorRenderTile from '../../../../../../src/ol/VectorRenderTile.js';
|
||||||
import VectorTile from '../../../../../../src/ol/VectorTile.js';
|
import VectorTile from '../../../../../../src/ol/VectorTile.js';
|
||||||
import VectorTileLayer from '../../../../../../src/ol/layer/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 VectorTileSource from '../../../../../../src/ol/source/VectorTile.js';
|
||||||
import View from '../../../../../../src/ol/View.js';
|
import View from '../../../../../../src/ol/View.js';
|
||||||
import XYZ from '../../../../../../src/ol/source/XYZ.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 () {
|
it('does not render images for pure vector rendering', function () {
|
||||||
const testLayer = new VectorTileLayer({
|
const testLayer = new VectorTileLayer({
|
||||||
renderMode: VectorTileRenderType.VECTOR,
|
renderMode: 'vector',
|
||||||
source: source,
|
source: source,
|
||||||
style: layerStyle,
|
style: layerStyle,
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
import MVT from '../../../../src/ol/format/MVT.js';
|
import MVT from '../../../../src/ol/format/MVT.js';
|
||||||
import Map from '../../../../src/ol/Map.js';
|
import Map from '../../../../src/ol/Map.js';
|
||||||
import VectorTileLayer from '../../../../src/ol/layer/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 VectorTileSource from '../../../../src/ol/source/VectorTile.js';
|
||||||
import View from '../../../../src/ol/View.js';
|
import View from '../../../../src/ol/View.js';
|
||||||
import {createXYZ} from '../../../../src/ol/tilegrid.js';
|
import {createXYZ} from '../../../../src/ol/tilegrid.js';
|
||||||
@@ -9,7 +8,7 @@ import {createXYZ} from '../../../../src/ol/tilegrid.js';
|
|||||||
new Map({
|
new Map({
|
||||||
layers: [
|
layers: [
|
||||||
new VectorTileLayer({
|
new VectorTileLayer({
|
||||||
renderMode: VectorTileRenderType.VECTOR,
|
renderMode: 'vector',
|
||||||
opacity: 0.1,
|
opacity: 0.1,
|
||||||
source: new VectorTileSource({
|
source: new VectorTileSource({
|
||||||
format: new MVT(),
|
format: new MVT(),
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
import MVT from '../../../../src/ol/format/MVT.js';
|
import MVT from '../../../../src/ol/format/MVT.js';
|
||||||
import Map from '../../../../src/ol/Map.js';
|
import Map from '../../../../src/ol/Map.js';
|
||||||
import VectorTileLayer from '../../../../src/ol/layer/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 VectorTileSource from '../../../../src/ol/source/VectorTile.js';
|
||||||
import View from '../../../../src/ol/View.js';
|
import View from '../../../../src/ol/View.js';
|
||||||
import {createXYZ} from '../../../../src/ol/tilegrid.js';
|
import {createXYZ} from '../../../../src/ol/tilegrid.js';
|
||||||
@@ -9,7 +8,7 @@ import {createXYZ} from '../../../../src/ol/tilegrid.js';
|
|||||||
new Map({
|
new Map({
|
||||||
layers: [
|
layers: [
|
||||||
new VectorTileLayer({
|
new VectorTileLayer({
|
||||||
renderMode: VectorTileRenderType.VECTOR,
|
renderMode: 'vector',
|
||||||
source: new VectorTileSource({
|
source: new VectorTileSource({
|
||||||
format: new MVT(),
|
format: new MVT(),
|
||||||
tileGrid: createXYZ(),
|
tileGrid: createXYZ(),
|
||||||
|
|||||||
Reference in New Issue
Block a user