Named exports from ol/renderer/vector
This commit is contained in:
@@ -14,7 +14,7 @@ import _ol_render_canvas_ from '../../render/canvas.js';
|
||||
import CanvasReplayGroup from '../../render/canvas/ReplayGroup.js';
|
||||
import RendererType from '../Type.js';
|
||||
import CanvasLayerRenderer from '../canvas/Layer.js';
|
||||
import _ol_renderer_vector_ from '../vector.js';
|
||||
import {defaultOrder as defaultRenderOrder, getTolerance as getRenderTolerance, getSquaredTolerance as getSquaredRenderTolerance, renderFeature} from '../vector.js';
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
@@ -321,7 +321,7 @@ CanvasVectorLayerRenderer.prototype.prepareFrame = function(frameState, layerSta
|
||||
let vectorLayerRenderOrder = vectorLayer.getRenderOrder();
|
||||
|
||||
if (vectorLayerRenderOrder === undefined) {
|
||||
vectorLayerRenderOrder = _ol_renderer_vector_.defaultOrder;
|
||||
vectorLayerRenderOrder = defaultRenderOrder;
|
||||
}
|
||||
|
||||
const extent = buffer(frameStateExtent,
|
||||
@@ -355,14 +355,14 @@ CanvasVectorLayerRenderer.prototype.prepareFrame = function(frameState, layerSta
|
||||
this.dirty_ = false;
|
||||
|
||||
const replayGroup = new CanvasReplayGroup(
|
||||
_ol_renderer_vector_.getTolerance(resolution, pixelRatio), extent, resolution,
|
||||
getRenderTolerance(resolution, pixelRatio), extent, resolution,
|
||||
pixelRatio, vectorSource.getOverlaps(), this.declutterTree_, vectorLayer.getRenderBuffer());
|
||||
vectorSource.loadFeatures(extent, resolution, projection);
|
||||
/**
|
||||
* @param {ol.Feature} feature Feature.
|
||||
* @this {ol.renderer.canvas.VectorLayer}
|
||||
*/
|
||||
const renderFeature = function(feature) {
|
||||
const render = function(feature) {
|
||||
let styles;
|
||||
let styleFunction = feature.getStyleFunction();
|
||||
if (styleFunction) {
|
||||
@@ -391,10 +391,10 @@ CanvasVectorLayerRenderer.prototype.prepareFrame = function(frameState, layerSta
|
||||
}, this);
|
||||
features.sort(vectorLayerRenderOrder);
|
||||
for (let i = 0, ii = features.length; i < ii; ++i) {
|
||||
renderFeature(features[i]);
|
||||
render(features[i]);
|
||||
}
|
||||
} else {
|
||||
vectorSource.forEachFeatureInExtent(extent, renderFeature, this);
|
||||
vectorSource.forEachFeatureInExtent(extent, render, this);
|
||||
}
|
||||
replayGroup.finish();
|
||||
|
||||
@@ -425,15 +425,15 @@ CanvasVectorLayerRenderer.prototype.renderFeature = function(feature, resolution
|
||||
let loading = false;
|
||||
if (Array.isArray(styles)) {
|
||||
for (let i = 0, ii = styles.length; i < ii; ++i) {
|
||||
loading = _ol_renderer_vector_.renderFeature(
|
||||
loading = renderFeature(
|
||||
replayGroup, feature, styles[i],
|
||||
_ol_renderer_vector_.getSquaredTolerance(resolution, pixelRatio),
|
||||
getSquaredRenderTolerance(resolution, pixelRatio),
|
||||
this.handleStyleImageChange_, this) || loading;
|
||||
}
|
||||
} else {
|
||||
loading = _ol_renderer_vector_.renderFeature(
|
||||
loading = renderFeature(
|
||||
replayGroup, feature, styles,
|
||||
_ol_renderer_vector_.getSquaredTolerance(resolution, pixelRatio),
|
||||
getSquaredRenderTolerance(resolution, pixelRatio),
|
||||
this.handleStyleImageChange_, this);
|
||||
}
|
||||
return loading;
|
||||
|
||||
@@ -18,7 +18,7 @@ import CanvasReplayGroup from '../../render/canvas/ReplayGroup.js';
|
||||
import _ol_render_replay_ from '../../render/replay.js';
|
||||
import RendererType from '../Type.js';
|
||||
import CanvasTileLayerRenderer from '../canvas/TileLayer.js';
|
||||
import _ol_renderer_vector_ from '../vector.js';
|
||||
import {getSquaredTolerance as getSquaredRenderTolerance, renderFeature} from '../vector.js';
|
||||
import _ol_transform_ from '../../transform.js';
|
||||
|
||||
/**
|
||||
@@ -192,14 +192,14 @@ CanvasVectorTileLayerRenderer.prototype.createReplayGroup_ = function(
|
||||
replayState.dirty = false;
|
||||
const replayGroup = new CanvasReplayGroup(0, sharedExtent, resolution,
|
||||
pixelRatio, source.getOverlaps(), this.declutterTree_, layer.getRenderBuffer());
|
||||
const squaredTolerance = _ol_renderer_vector_.getSquaredTolerance(
|
||||
const squaredTolerance = getSquaredRenderTolerance(
|
||||
resolution, pixelRatio);
|
||||
|
||||
/**
|
||||
* @param {ol.Feature|ol.render.Feature} feature Feature.
|
||||
* @this {ol.renderer.canvas.VectorTileLayer}
|
||||
*/
|
||||
const renderFeature = function(feature) {
|
||||
const render = function(feature) {
|
||||
let styles;
|
||||
let styleFunction = feature.getStyleFunction();
|
||||
if (styleFunction) {
|
||||
@@ -234,7 +234,7 @@ CanvasVectorTileLayerRenderer.prototype.createReplayGroup_ = function(
|
||||
feature.getGeometry().transform(tileProjection, projection);
|
||||
}
|
||||
if (!bufferedExtent || intersects(bufferedExtent, feature.getGeometry().getExtent())) {
|
||||
renderFeature.call(this, feature);
|
||||
render.call(this, feature);
|
||||
}
|
||||
}
|
||||
replayGroup.finish();
|
||||
@@ -466,12 +466,12 @@ CanvasVectorTileLayerRenderer.prototype.renderFeature = function(feature, square
|
||||
let loading = false;
|
||||
if (Array.isArray(styles)) {
|
||||
for (let i = 0, ii = styles.length; i < ii; ++i) {
|
||||
loading = _ol_renderer_vector_.renderFeature(
|
||||
loading = renderFeature(
|
||||
replayGroup, feature, styles[i], squaredTolerance,
|
||||
this.handleStyleImageChange_, this) || loading;
|
||||
}
|
||||
} else {
|
||||
loading = _ol_renderer_vector_.renderFeature(
|
||||
loading = renderFeature(
|
||||
replayGroup, feature, styles, squaredTolerance,
|
||||
this.handleStyleImageChange_, this);
|
||||
}
|
||||
|
||||
@@ -5,7 +5,6 @@ import {getUid} from '../index.js';
|
||||
import ImageState from '../ImageState.js';
|
||||
import GeometryType from '../geom/GeometryType.js';
|
||||
import ReplayType from '../render/ReplayType.js';
|
||||
const _ol_renderer_vector_ = {};
|
||||
|
||||
|
||||
/**
|
||||
@@ -14,14 +13,32 @@ const _ol_renderer_vector_ = {};
|
||||
const SIMPLIFY_TOLERANCE = 0.5;
|
||||
|
||||
|
||||
/**
|
||||
* @const
|
||||
* @type {Object.<ol.geom.GeometryType,
|
||||
* function(ol.render.ReplayGroup, ol.geom.Geometry,
|
||||
* ol.style.Style, Object)>}
|
||||
*/
|
||||
const GEOMETRY_RENDERERS = {
|
||||
'Point': renderPointGeometry,
|
||||
'LineString': renderLineStringGeometry,
|
||||
'Polygon': renderPolygonGeometry,
|
||||
'MultiPoint': renderMultiPointGeometry,
|
||||
'MultiLineString': renderMultiLineStringGeometry,
|
||||
'MultiPolygon': renderMultiPolygonGeometry,
|
||||
'GeometryCollection': renderGeometryCollectionGeometry,
|
||||
'Circle': renderCircleGeometry
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {ol.Feature|ol.render.Feature} feature1 Feature 1.
|
||||
* @param {ol.Feature|ol.render.Feature} feature2 Feature 2.
|
||||
* @return {number} Order.
|
||||
*/
|
||||
_ol_renderer_vector_.defaultOrder = function(feature1, feature2) {
|
||||
export function defaultOrder(feature1, feature2) {
|
||||
return getUid(feature1) - getUid(feature2);
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
@@ -29,10 +46,10 @@ _ol_renderer_vector_.defaultOrder = function(feature1, feature2) {
|
||||
* @param {number} pixelRatio Pixel ratio.
|
||||
* @return {number} Squared pixel tolerance.
|
||||
*/
|
||||
_ol_renderer_vector_.getSquaredTolerance = function(resolution, pixelRatio) {
|
||||
const tolerance = _ol_renderer_vector_.getTolerance(resolution, pixelRatio);
|
||||
export function getSquaredTolerance(resolution, pixelRatio) {
|
||||
const tolerance = getTolerance(resolution, pixelRatio);
|
||||
return tolerance * tolerance;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
@@ -40,9 +57,9 @@ _ol_renderer_vector_.getSquaredTolerance = function(resolution, pixelRatio) {
|
||||
* @param {number} pixelRatio Pixel ratio.
|
||||
* @return {number} Pixel tolerance.
|
||||
*/
|
||||
_ol_renderer_vector_.getTolerance = function(resolution, pixelRatio) {
|
||||
export function getTolerance(resolution, pixelRatio) {
|
||||
return SIMPLIFY_TOLERANCE * resolution / pixelRatio;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
@@ -50,9 +67,8 @@ _ol_renderer_vector_.getTolerance = function(resolution, pixelRatio) {
|
||||
* @param {ol.geom.Circle} geometry Geometry.
|
||||
* @param {ol.style.Style} style Style.
|
||||
* @param {ol.Feature} feature Feature.
|
||||
* @private
|
||||
*/
|
||||
_ol_renderer_vector_.renderCircleGeometry_ = function(replayGroup, geometry, style, feature) {
|
||||
function renderCircleGeometry(replayGroup, geometry, style, feature) {
|
||||
const fillStyle = style.getFill();
|
||||
const strokeStyle = style.getStroke();
|
||||
if (fillStyle || strokeStyle) {
|
||||
@@ -66,7 +82,7 @@ _ol_renderer_vector_.renderCircleGeometry_ = function(replayGroup, geometry, sty
|
||||
textReplay.setTextStyle(textStyle, replayGroup.addDeclutter(false));
|
||||
textReplay.drawText(geometry, feature);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
@@ -79,8 +95,7 @@ _ol_renderer_vector_.renderCircleGeometry_ = function(replayGroup, geometry, sty
|
||||
* @return {boolean} `true` if style is loading.
|
||||
* @template T
|
||||
*/
|
||||
_ol_renderer_vector_.renderFeature = function(
|
||||
replayGroup, feature, style, squaredTolerance, listener, thisArg) {
|
||||
export function renderFeature(replayGroup, feature, style, squaredTolerance, listener, thisArg) {
|
||||
let loading = false;
|
||||
const imageStyle = style.getImage();
|
||||
if (imageStyle) {
|
||||
@@ -96,11 +111,10 @@ _ol_renderer_vector_.renderFeature = function(
|
||||
loading = true;
|
||||
}
|
||||
}
|
||||
_ol_renderer_vector_.renderFeature_(replayGroup, feature, style,
|
||||
squaredTolerance);
|
||||
renderFeatureInternal(replayGroup, feature, style, squaredTolerance);
|
||||
|
||||
return loading;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
@@ -108,10 +122,8 @@ _ol_renderer_vector_.renderFeature = function(
|
||||
* @param {ol.Feature|ol.render.Feature} feature Feature.
|
||||
* @param {ol.style.Style} style Style.
|
||||
* @param {number} squaredTolerance Squared tolerance.
|
||||
* @private
|
||||
*/
|
||||
_ol_renderer_vector_.renderFeature_ = function(
|
||||
replayGroup, feature, style, squaredTolerance) {
|
||||
function renderFeatureInternal(replayGroup, feature, style, squaredTolerance) {
|
||||
const geometry = style.getGeometryFunction()(feature);
|
||||
if (!geometry) {
|
||||
return;
|
||||
@@ -119,13 +131,12 @@ _ol_renderer_vector_.renderFeature_ = function(
|
||||
const simplifiedGeometry = geometry.getSimplifiedGeometry(squaredTolerance);
|
||||
const renderer = style.getRenderer();
|
||||
if (renderer) {
|
||||
_ol_renderer_vector_.renderGeometry_(replayGroup, simplifiedGeometry, style, feature);
|
||||
renderGeometry(replayGroup, simplifiedGeometry, style, feature);
|
||||
} else {
|
||||
const geometryRenderer =
|
||||
_ol_renderer_vector_.GEOMETRY_RENDERERS_[simplifiedGeometry.getType()];
|
||||
const geometryRenderer = GEOMETRY_RENDERERS[simplifiedGeometry.getType()];
|
||||
geometryRenderer(replayGroup, simplifiedGeometry, style, feature);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
@@ -133,19 +144,18 @@ _ol_renderer_vector_.renderFeature_ = function(
|
||||
* @param {ol.geom.Geometry} geometry Geometry.
|
||||
* @param {ol.style.Style} style Style.
|
||||
* @param {ol.Feature|ol.render.Feature} feature Feature.
|
||||
* @private
|
||||
*/
|
||||
_ol_renderer_vector_.renderGeometry_ = function(replayGroup, geometry, style, feature) {
|
||||
function renderGeometry(replayGroup, geometry, style, feature) {
|
||||
if (geometry.getType() == GeometryType.GEOMETRY_COLLECTION) {
|
||||
const geometries = /** @type {ol.geom.GeometryCollection} */ (geometry).getGeometries();
|
||||
for (let i = 0, ii = geometries.length; i < ii; ++i) {
|
||||
_ol_renderer_vector_.renderGeometry_(replayGroup, geometries[i], style, feature);
|
||||
renderGeometry(replayGroup, geometries[i], style, feature);
|
||||
}
|
||||
return;
|
||||
}
|
||||
const replay = replayGroup.getReplay(style.getZIndex(), ReplayType.DEFAULT);
|
||||
replay.drawCustom(/** @type {ol.geom.SimpleGeometry} */ (geometry), feature, style.getRenderer());
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
@@ -153,17 +163,16 @@ _ol_renderer_vector_.renderGeometry_ = function(replayGroup, geometry, style, fe
|
||||
* @param {ol.geom.GeometryCollection} geometry Geometry.
|
||||
* @param {ol.style.Style} style Style.
|
||||
* @param {ol.Feature} feature Feature.
|
||||
* @private
|
||||
*/
|
||||
_ol_renderer_vector_.renderGeometryCollectionGeometry_ = function(replayGroup, geometry, style, feature) {
|
||||
function renderGeometryCollectionGeometry(replayGroup, geometry, style, feature) {
|
||||
const geometries = geometry.getGeometriesArray();
|
||||
let i, ii;
|
||||
for (i = 0, ii = geometries.length; i < ii; ++i) {
|
||||
const geometryRenderer =
|
||||
_ol_renderer_vector_.GEOMETRY_RENDERERS_[geometries[i].getType()];
|
||||
GEOMETRY_RENDERERS[geometries[i].getType()];
|
||||
geometryRenderer(replayGroup, geometries[i], style, feature);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
@@ -171,9 +180,8 @@ _ol_renderer_vector_.renderGeometryCollectionGeometry_ = function(replayGroup, g
|
||||
* @param {ol.geom.LineString|ol.render.Feature} geometry Geometry.
|
||||
* @param {ol.style.Style} style Style.
|
||||
* @param {ol.Feature|ol.render.Feature} feature Feature.
|
||||
* @private
|
||||
*/
|
||||
_ol_renderer_vector_.renderLineStringGeometry_ = function(replayGroup, geometry, style, feature) {
|
||||
function renderLineStringGeometry(replayGroup, geometry, style, feature) {
|
||||
const strokeStyle = style.getStroke();
|
||||
if (strokeStyle) {
|
||||
const lineStringReplay = replayGroup.getReplay(style.getZIndex(), ReplayType.LINE_STRING);
|
||||
@@ -186,7 +194,7 @@ _ol_renderer_vector_.renderLineStringGeometry_ = function(replayGroup, geometry,
|
||||
textReplay.setTextStyle(textStyle, replayGroup.addDeclutter(false));
|
||||
textReplay.drawText(geometry, feature);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
@@ -194,9 +202,8 @@ _ol_renderer_vector_.renderLineStringGeometry_ = function(replayGroup, geometry,
|
||||
* @param {ol.geom.MultiLineString|ol.render.Feature} geometry Geometry.
|
||||
* @param {ol.style.Style} style Style.
|
||||
* @param {ol.Feature|ol.render.Feature} feature Feature.
|
||||
* @private
|
||||
*/
|
||||
_ol_renderer_vector_.renderMultiLineStringGeometry_ = function(replayGroup, geometry, style, feature) {
|
||||
function renderMultiLineStringGeometry(replayGroup, geometry, style, feature) {
|
||||
const strokeStyle = style.getStroke();
|
||||
if (strokeStyle) {
|
||||
const lineStringReplay = replayGroup.getReplay(style.getZIndex(), ReplayType.LINE_STRING);
|
||||
@@ -209,7 +216,7 @@ _ol_renderer_vector_.renderMultiLineStringGeometry_ = function(replayGroup, geom
|
||||
textReplay.setTextStyle(textStyle, replayGroup.addDeclutter(false));
|
||||
textReplay.drawText(geometry, feature);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
@@ -217,9 +224,8 @@ _ol_renderer_vector_.renderMultiLineStringGeometry_ = function(replayGroup, geom
|
||||
* @param {ol.geom.MultiPolygon} geometry Geometry.
|
||||
* @param {ol.style.Style} style Style.
|
||||
* @param {ol.Feature} feature Feature.
|
||||
* @private
|
||||
*/
|
||||
_ol_renderer_vector_.renderMultiPolygonGeometry_ = function(replayGroup, geometry, style, feature) {
|
||||
function renderMultiPolygonGeometry(replayGroup, geometry, style, feature) {
|
||||
const fillStyle = style.getFill();
|
||||
const strokeStyle = style.getStroke();
|
||||
if (strokeStyle || fillStyle) {
|
||||
@@ -233,7 +239,7 @@ _ol_renderer_vector_.renderMultiPolygonGeometry_ = function(replayGroup, geometr
|
||||
textReplay.setTextStyle(textStyle, replayGroup.addDeclutter(false));
|
||||
textReplay.drawText(geometry, feature);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
@@ -241,9 +247,8 @@ _ol_renderer_vector_.renderMultiPolygonGeometry_ = function(replayGroup, geometr
|
||||
* @param {ol.geom.Point|ol.render.Feature} geometry Geometry.
|
||||
* @param {ol.style.Style} style Style.
|
||||
* @param {ol.Feature|ol.render.Feature} feature Feature.
|
||||
* @private
|
||||
*/
|
||||
_ol_renderer_vector_.renderPointGeometry_ = function(replayGroup, geometry, style, feature) {
|
||||
function renderPointGeometry(replayGroup, geometry, style, feature) {
|
||||
const imageStyle = style.getImage();
|
||||
if (imageStyle) {
|
||||
if (imageStyle.getImageState() != ImageState.LOADED) {
|
||||
@@ -259,7 +264,7 @@ _ol_renderer_vector_.renderPointGeometry_ = function(replayGroup, geometry, styl
|
||||
textReplay.setTextStyle(textStyle, replayGroup.addDeclutter(!!imageStyle));
|
||||
textReplay.drawText(geometry, feature);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
@@ -267,9 +272,8 @@ _ol_renderer_vector_.renderPointGeometry_ = function(replayGroup, geometry, styl
|
||||
* @param {ol.geom.MultiPoint|ol.render.Feature} geometry Geometry.
|
||||
* @param {ol.style.Style} style Style.
|
||||
* @param {ol.Feature|ol.render.Feature} feature Feature.
|
||||
* @private
|
||||
*/
|
||||
_ol_renderer_vector_.renderMultiPointGeometry_ = function(replayGroup, geometry, style, feature) {
|
||||
function renderMultiPointGeometry(replayGroup, geometry, style, feature) {
|
||||
const imageStyle = style.getImage();
|
||||
if (imageStyle) {
|
||||
if (imageStyle.getImageState() != ImageState.LOADED) {
|
||||
@@ -285,7 +289,7 @@ _ol_renderer_vector_.renderMultiPointGeometry_ = function(replayGroup, geometry,
|
||||
textReplay.setTextStyle(textStyle, replayGroup.addDeclutter(!!imageStyle));
|
||||
textReplay.drawText(geometry, feature);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
@@ -293,9 +297,8 @@ _ol_renderer_vector_.renderMultiPointGeometry_ = function(replayGroup, geometry,
|
||||
* @param {ol.geom.Polygon|ol.render.Feature} geometry Geometry.
|
||||
* @param {ol.style.Style} style Style.
|
||||
* @param {ol.Feature|ol.render.Feature} feature Feature.
|
||||
* @private
|
||||
*/
|
||||
_ol_renderer_vector_.renderPolygonGeometry_ = function(replayGroup, geometry, style, feature) {
|
||||
function renderPolygonGeometry(replayGroup, geometry, style, feature) {
|
||||
const fillStyle = style.getFill();
|
||||
const strokeStyle = style.getStroke();
|
||||
if (fillStyle || strokeStyle) {
|
||||
@@ -309,24 +312,4 @@ _ol_renderer_vector_.renderPolygonGeometry_ = function(replayGroup, geometry, st
|
||||
textReplay.setTextStyle(textStyle, replayGroup.addDeclutter(false));
|
||||
textReplay.drawText(geometry, feature);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @const
|
||||
* @private
|
||||
* @type {Object.<ol.geom.GeometryType,
|
||||
* function(ol.render.ReplayGroup, ol.geom.Geometry,
|
||||
* ol.style.Style, Object)>}
|
||||
*/
|
||||
_ol_renderer_vector_.GEOMETRY_RENDERERS_ = {
|
||||
'Point': _ol_renderer_vector_.renderPointGeometry_,
|
||||
'LineString': _ol_renderer_vector_.renderLineStringGeometry_,
|
||||
'Polygon': _ol_renderer_vector_.renderPolygonGeometry_,
|
||||
'MultiPoint': _ol_renderer_vector_.renderMultiPointGeometry_,
|
||||
'MultiLineString': _ol_renderer_vector_.renderMultiLineStringGeometry_,
|
||||
'MultiPolygon': _ol_renderer_vector_.renderMultiPolygonGeometry_,
|
||||
'GeometryCollection': _ol_renderer_vector_.renderGeometryCollectionGeometry_,
|
||||
'Circle': _ol_renderer_vector_.renderCircleGeometry_
|
||||
};
|
||||
export default _ol_renderer_vector_;
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ import ViewHint from '../../ViewHint.js';
|
||||
import {buffer, containsExtent, createEmpty} from '../../extent.js';
|
||||
import WebGLReplayGroup from '../../render/webgl/ReplayGroup.js';
|
||||
import RendererType from '../Type.js';
|
||||
import _ol_renderer_vector_ from '../vector.js';
|
||||
import {defaultOrder as defaultRenderOrder, getTolerance as getRenderTolerance, getSquaredTolerance as getSquaredRenderTolerance, renderFeature} from '../vector.js';
|
||||
import WebGLLayerRenderer from '../webgl/Layer.js';
|
||||
import _ol_transform_ from '../../transform.js';
|
||||
|
||||
@@ -235,7 +235,7 @@ WebGLVectorLayerRenderer.prototype.prepareFrame = function(frameState, layerStat
|
||||
let vectorLayerRenderOrder = vectorLayer.getRenderOrder();
|
||||
|
||||
if (vectorLayerRenderOrder === undefined) {
|
||||
vectorLayerRenderOrder = _ol_renderer_vector_.defaultOrder;
|
||||
vectorLayerRenderOrder = defaultRenderOrder;
|
||||
}
|
||||
|
||||
const extent = buffer(frameStateExtent,
|
||||
@@ -257,14 +257,14 @@ WebGLVectorLayerRenderer.prototype.prepareFrame = function(frameState, layerStat
|
||||
this.dirty_ = false;
|
||||
|
||||
const replayGroup = new WebGLReplayGroup(
|
||||
_ol_renderer_vector_.getTolerance(resolution, pixelRatio),
|
||||
getRenderTolerance(resolution, pixelRatio),
|
||||
extent, vectorLayer.getRenderBuffer());
|
||||
vectorSource.loadFeatures(extent, resolution, projection);
|
||||
/**
|
||||
* @param {ol.Feature} feature Feature.
|
||||
* @this {ol.renderer.webgl.VectorLayer}
|
||||
*/
|
||||
const renderFeature = function(feature) {
|
||||
const render = function(feature) {
|
||||
let styles;
|
||||
let styleFunction = feature.getStyleFunction();
|
||||
if (styleFunction) {
|
||||
@@ -292,9 +292,9 @@ WebGLVectorLayerRenderer.prototype.prepareFrame = function(frameState, layerStat
|
||||
features.push(feature);
|
||||
}, this);
|
||||
features.sort(vectorLayerRenderOrder);
|
||||
features.forEach(renderFeature.bind(this));
|
||||
features.forEach(render.bind(this));
|
||||
} else {
|
||||
vectorSource.forEachFeatureInExtent(extent, renderFeature, this);
|
||||
vectorSource.forEachFeatureInExtent(extent, render, this);
|
||||
}
|
||||
replayGroup.finish(context);
|
||||
|
||||
@@ -324,15 +324,15 @@ WebGLVectorLayerRenderer.prototype.renderFeature = function(feature, resolution,
|
||||
let loading = false;
|
||||
if (Array.isArray(styles)) {
|
||||
for (let i = styles.length - 1, ii = 0; i >= ii; --i) {
|
||||
loading = _ol_renderer_vector_.renderFeature(
|
||||
loading = renderFeature(
|
||||
replayGroup, feature, styles[i],
|
||||
_ol_renderer_vector_.getSquaredTolerance(resolution, pixelRatio),
|
||||
getSquaredRenderTolerance(resolution, pixelRatio),
|
||||
this.handleStyleImageChange_, this) || loading;
|
||||
}
|
||||
} else {
|
||||
loading = _ol_renderer_vector_.renderFeature(
|
||||
loading = renderFeature(
|
||||
replayGroup, feature, styles,
|
||||
_ol_renderer_vector_.getSquaredTolerance(resolution, pixelRatio),
|
||||
getSquaredRenderTolerance(resolution, pixelRatio),
|
||||
this.handleStyleImageChange_, this) || loading;
|
||||
}
|
||||
return loading;
|
||||
|
||||
@@ -6,8 +6,6 @@ import RenderFeature from '../../../../src/ol/render/Feature.js';
|
||||
|
||||
|
||||
describe('ol.render.Feature', function() {
|
||||
|
||||
let renderFeature;
|
||||
const type = 'Point';
|
||||
const flatCoordinates = [0, 0];
|
||||
const ends = null;
|
||||
@@ -15,41 +13,46 @@ describe('ol.render.Feature', function() {
|
||||
|
||||
describe('Constructor', function() {
|
||||
it('creates an instance', function() {
|
||||
renderFeature =
|
||||
new RenderFeature(type, flatCoordinates, ends, properties, 'foo');
|
||||
expect(renderFeature).to.be.a(RenderFeature);
|
||||
const feature = new RenderFeature(type, flatCoordinates, ends, properties, 'foo');
|
||||
expect(feature).to.be.a(RenderFeature);
|
||||
});
|
||||
});
|
||||
|
||||
describe('#get()', function() {
|
||||
it('returns a single property', function() {
|
||||
expect(renderFeature.get('foo')).to.be('bar');
|
||||
const feature = new RenderFeature(type, flatCoordinates, ends, properties, 'foo');
|
||||
expect(feature.get('foo')).to.be('bar');
|
||||
});
|
||||
});
|
||||
|
||||
describe('#getEnds()', function() {
|
||||
it('returns the ends it was created with', function() {
|
||||
expect(renderFeature.getEnds()).to.equal(ends);
|
||||
const feature = new RenderFeature(type, flatCoordinates, ends, properties, 'foo');
|
||||
expect(feature.getEnds()).to.equal(ends);
|
||||
});
|
||||
});
|
||||
|
||||
describe('#getExtent()', function() {
|
||||
it('returns the correct extent for a point', function() {
|
||||
expect(renderFeature.getExtent()).to.eql([0, 0, 0, 0]);
|
||||
const feature = new RenderFeature(type, flatCoordinates, ends, properties, 'foo');
|
||||
expect(feature.getExtent()).to.eql([0, 0, 0, 0]);
|
||||
});
|
||||
|
||||
it('caches the extent', function() {
|
||||
expect(renderFeature.getExtent()).to.equal(renderFeature.extent_);
|
||||
const feature = new RenderFeature(type, flatCoordinates, ends, properties, 'foo');
|
||||
expect(feature.getExtent()).to.equal(feature.extent_);
|
||||
});
|
||||
|
||||
it('returns the correct extent for a linestring', function() {
|
||||
const feature =
|
||||
new RenderFeature('LineString', [-1, -2, 2, 1], null, {});
|
||||
const feature = new RenderFeature('LineString', [-1, -2, 2, 1], null, {});
|
||||
expect(feature.getExtent()).to.eql([-1, -2, 2, 1]);
|
||||
});
|
||||
});
|
||||
|
||||
describe('#getFlatCoordinates()', function() {
|
||||
it('returns the flat coordinates it was created with', function() {
|
||||
expect(renderFeature.getFlatCoordinates()).to.equal(flatCoordinates);
|
||||
const feature = new RenderFeature(type, flatCoordinates, ends, properties, 'foo');
|
||||
expect(feature.getFlatCoordinates()).to.equal(flatCoordinates);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -100,43 +103,50 @@ describe('ol.render.Feature', function() {
|
||||
|
||||
describe('#getGeometry()', function() {
|
||||
it('returns itself as geometry', function() {
|
||||
expect(renderFeature.getGeometry()).to.equal(renderFeature);
|
||||
const feature = new RenderFeature(type, flatCoordinates, ends, properties, 'foo');
|
||||
expect(feature.getGeometry()).to.equal(feature);
|
||||
});
|
||||
});
|
||||
|
||||
describe('#getId()', function() {
|
||||
it('returns the feature id', function() {
|
||||
expect(renderFeature.getId()).to.be('foo');
|
||||
const feature = new RenderFeature(type, flatCoordinates, ends, properties, 'foo');
|
||||
expect(feature.getId()).to.be('foo');
|
||||
});
|
||||
});
|
||||
|
||||
describe('#getProperties()', function() {
|
||||
it('returns the properties it was created with', function() {
|
||||
expect(renderFeature.getProperties()).to.equal(properties);
|
||||
const feature = new RenderFeature(type, flatCoordinates, ends, properties, 'foo');
|
||||
expect(feature.getProperties()).to.equal(properties);
|
||||
});
|
||||
});
|
||||
|
||||
describe('#getSimplifiedGeometry()', function() {
|
||||
it('returns itself as simplified geometry', function() {
|
||||
expect(renderFeature.getSimplifiedGeometry()).to.equal(renderFeature);
|
||||
const feature = new RenderFeature(type, flatCoordinates, ends, properties, 'foo');
|
||||
expect(feature.getSimplifiedGeometry()).to.equal(feature);
|
||||
});
|
||||
});
|
||||
|
||||
describe('#getStride()', function() {
|
||||
it('returns 2', function() {
|
||||
expect(renderFeature.getStride()).to.be(2);
|
||||
const feature = new RenderFeature(type, flatCoordinates, ends, properties, 'foo');
|
||||
expect(feature.getStride()).to.be(2);
|
||||
});
|
||||
});
|
||||
|
||||
describe('#getStyleFunction()', function() {
|
||||
it('returns undefined', function() {
|
||||
expect(renderFeature.getStyleFunction()).to.be(undefined);
|
||||
const feature = new RenderFeature(type, flatCoordinates, ends, properties, 'foo');
|
||||
expect(feature.getStyleFunction()).to.be(undefined);
|
||||
});
|
||||
});
|
||||
|
||||
describe('#getType()', function() {
|
||||
it('returns the type it was created with', function() {
|
||||
expect(renderFeature.getType()).to.equal(type);
|
||||
const feature = new RenderFeature(type, flatCoordinates, ends, properties, 'foo');
|
||||
expect(feature.getType()).to.equal(type);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ import CanvasLineStringReplay from '../../../../../src/ol/render/canvas/LineStri
|
||||
import CanvasPolygonReplay from '../../../../../src/ol/render/canvas/PolygonReplay.js';
|
||||
import CanvasReplay from '../../../../../src/ol/render/canvas/Replay.js';
|
||||
import CanvasReplayGroup from '../../../../../src/ol/render/canvas/ReplayGroup.js';
|
||||
import _ol_renderer_vector_ from '../../../../../src/ol/renderer/vector.js';
|
||||
import {renderFeature} from '../../../../../src/ol/renderer/vector.js';
|
||||
import Fill from '../../../../../src/ol/style/Fill.js';
|
||||
import Stroke from '../../../../../src/ol/style/Stroke.js';
|
||||
import Style from '../../../../../src/ol/style/Style.js';
|
||||
@@ -88,7 +88,7 @@ describe('ol.render.canvas.ReplayGroup', function() {
|
||||
});
|
||||
|
||||
it('omits lineTo for repeated coordinates', function() {
|
||||
_ol_renderer_vector_.renderFeature(replay, feature0, fill0, 1);
|
||||
renderFeature(replay, feature0, fill0, 1);
|
||||
replay.replay(context, transform, 0, {});
|
||||
expect(lineToCount).to.be(4);
|
||||
lineToCount = 0;
|
||||
@@ -98,16 +98,16 @@ describe('ol.render.canvas.ReplayGroup', function() {
|
||||
});
|
||||
|
||||
it('does not omit moveTo for repeated coordinates', function() {
|
||||
_ol_renderer_vector_.renderFeature(replay, feature0, fill0, 1);
|
||||
_ol_renderer_vector_.renderFeature(replay, feature1, fill1, 1);
|
||||
renderFeature(replay, feature0, fill0, 1);
|
||||
renderFeature(replay, feature1, fill1, 1);
|
||||
replay.replay(context, transform, 0, {});
|
||||
expect(moveToCount).to.be(2);
|
||||
});
|
||||
|
||||
it('batches fill and stroke instructions for same style', function() {
|
||||
_ol_renderer_vector_.renderFeature(replay, feature1, style1, 1);
|
||||
_ol_renderer_vector_.renderFeature(replay, feature2, style1, 1);
|
||||
_ol_renderer_vector_.renderFeature(replay, feature3, style1, 1);
|
||||
renderFeature(replay, feature1, style1, 1);
|
||||
renderFeature(replay, feature2, style1, 1);
|
||||
renderFeature(replay, feature3, style1, 1);
|
||||
replay.replay(context, transform, 0, {});
|
||||
expect(fillCount).to.be(1);
|
||||
expect(strokeCount).to.be(1);
|
||||
@@ -115,9 +115,9 @@ describe('ol.render.canvas.ReplayGroup', function() {
|
||||
});
|
||||
|
||||
it('batches fill and stroke instructions for different styles', function() {
|
||||
_ol_renderer_vector_.renderFeature(replay, feature1, style1, 1);
|
||||
_ol_renderer_vector_.renderFeature(replay, feature2, style1, 1);
|
||||
_ol_renderer_vector_.renderFeature(replay, feature3, style2, 1);
|
||||
renderFeature(replay, feature1, style1, 1);
|
||||
renderFeature(replay, feature2, style1, 1);
|
||||
renderFeature(replay, feature3, style2, 1);
|
||||
replay.replay(context, transform, 0, {});
|
||||
expect(fillCount).to.be(2);
|
||||
expect(strokeCount).to.be(2);
|
||||
@@ -125,9 +125,9 @@ describe('ol.render.canvas.ReplayGroup', function() {
|
||||
});
|
||||
|
||||
it('batches fill and stroke instructions for changing styles', function() {
|
||||
_ol_renderer_vector_.renderFeature(replay, feature1, style1, 1);
|
||||
_ol_renderer_vector_.renderFeature(replay, feature2, style2, 1);
|
||||
_ol_renderer_vector_.renderFeature(replay, feature3, style1, 1);
|
||||
renderFeature(replay, feature1, style1, 1);
|
||||
renderFeature(replay, feature2, style2, 1);
|
||||
renderFeature(replay, feature3, style1, 1);
|
||||
replay.replay(context, transform, 0, {});
|
||||
expect(fillCount).to.be(3);
|
||||
expect(strokeCount).to.be(3);
|
||||
@@ -135,9 +135,9 @@ describe('ol.render.canvas.ReplayGroup', function() {
|
||||
});
|
||||
|
||||
it('batches fill and stroke instructions for skipped feature at the beginning', function() {
|
||||
_ol_renderer_vector_.renderFeature(replay, feature1, style1, 1);
|
||||
_ol_renderer_vector_.renderFeature(replay, feature2, style2, 1);
|
||||
_ol_renderer_vector_.renderFeature(replay, feature3, style2, 1);
|
||||
renderFeature(replay, feature1, style1, 1);
|
||||
renderFeature(replay, feature2, style2, 1);
|
||||
renderFeature(replay, feature3, style2, 1);
|
||||
const skippedUids = {};
|
||||
skippedUids[getUid(feature1)] = true;
|
||||
replay.replay(context, transform, 0, skippedUids);
|
||||
@@ -147,9 +147,9 @@ describe('ol.render.canvas.ReplayGroup', function() {
|
||||
});
|
||||
|
||||
it('batches fill and stroke instructions for skipped feature at the end', function() {
|
||||
_ol_renderer_vector_.renderFeature(replay, feature1, style1, 1);
|
||||
_ol_renderer_vector_.renderFeature(replay, feature2, style1, 1);
|
||||
_ol_renderer_vector_.renderFeature(replay, feature3, style2, 1);
|
||||
renderFeature(replay, feature1, style1, 1);
|
||||
renderFeature(replay, feature2, style1, 1);
|
||||
renderFeature(replay, feature3, style2, 1);
|
||||
const skippedUids = {};
|
||||
skippedUids[getUid(feature3)] = true;
|
||||
replay.replay(context, transform, 0, skippedUids);
|
||||
@@ -159,9 +159,9 @@ describe('ol.render.canvas.ReplayGroup', function() {
|
||||
});
|
||||
|
||||
it('batches fill and stroke instructions for skipped features', function() {
|
||||
_ol_renderer_vector_.renderFeature(replay, feature1, style1, 1);
|
||||
_ol_renderer_vector_.renderFeature(replay, feature2, style1, 1);
|
||||
_ol_renderer_vector_.renderFeature(replay, feature3, style2, 1);
|
||||
renderFeature(replay, feature1, style1, 1);
|
||||
renderFeature(replay, feature2, style1, 1);
|
||||
renderFeature(replay, feature3, style2, 1);
|
||||
const skippedUids = {};
|
||||
skippedUids[getUid(feature1)] = true;
|
||||
skippedUids[getUid(feature2)] = true;
|
||||
@@ -173,9 +173,9 @@ describe('ol.render.canvas.ReplayGroup', function() {
|
||||
|
||||
it('does not batch when overlaps is set to true', function() {
|
||||
replay = new CanvasReplayGroup(1, [-180, -90, 180, 90], 1, 1, true);
|
||||
_ol_renderer_vector_.renderFeature(replay, feature1, style1, 1);
|
||||
_ol_renderer_vector_.renderFeature(replay, feature2, style1, 1);
|
||||
_ol_renderer_vector_.renderFeature(replay, feature3, style1, 1);
|
||||
renderFeature(replay, feature1, style1, 1);
|
||||
renderFeature(replay, feature2, style1, 1);
|
||||
renderFeature(replay, feature3, style1, 1);
|
||||
replay.replay(context, transform, 0, {});
|
||||
expect(fillCount).to.be(3);
|
||||
expect(strokeCount).to.be(3);
|
||||
@@ -201,8 +201,8 @@ describe('ol.render.canvas.ReplayGroup', function() {
|
||||
}
|
||||
});
|
||||
|
||||
_ol_renderer_vector_.renderFeature(replay, feature1, style2, 1);
|
||||
_ol_renderer_vector_.renderFeature(replay, feature2, style2, 1);
|
||||
renderFeature(replay, feature1, style2, 1);
|
||||
renderFeature(replay, feature2, style2, 1);
|
||||
replay.replay(context, transform, 0, {});
|
||||
|
||||
expect(lineDashCount).to.be(1);
|
||||
@@ -242,13 +242,13 @@ describe('ol.render.canvas.ReplayGroup', function() {
|
||||
const geometrycollection = new Feature(new GeometryCollection(
|
||||
[point.getGeometry(), linestring.getGeometry(), polygon.getGeometry()]));
|
||||
replay = new CanvasReplayGroup(1, [-180, -90, 180, 90], 1, 1, true);
|
||||
_ol_renderer_vector_.renderFeature(replay, point, style, 1);
|
||||
_ol_renderer_vector_.renderFeature(replay, multipoint, style, 1);
|
||||
_ol_renderer_vector_.renderFeature(replay, linestring, style, 1);
|
||||
_ol_renderer_vector_.renderFeature(replay, multilinestring, style, 1);
|
||||
_ol_renderer_vector_.renderFeature(replay, polygon, style, 1);
|
||||
_ol_renderer_vector_.renderFeature(replay, multipolygon, style, 1);
|
||||
_ol_renderer_vector_.renderFeature(replay, geometrycollection, style, 1);
|
||||
renderFeature(replay, point, style, 1);
|
||||
renderFeature(replay, multipoint, style, 1);
|
||||
renderFeature(replay, linestring, style, 1);
|
||||
renderFeature(replay, multilinestring, style, 1);
|
||||
renderFeature(replay, polygon, style, 1);
|
||||
renderFeature(replay, multipolygon, style, 1);
|
||||
renderFeature(replay, geometrycollection, style, 1);
|
||||
_ol_transform_.scale(transform, 0.1, 0.1);
|
||||
replay.replay(context, transform, 0, {});
|
||||
expect(calls.length).to.be(9);
|
||||
|
||||
@@ -7,7 +7,7 @@ import MultiLineString from '../../../../src/ol/geom/MultiLineString.js';
|
||||
import MultiPoint from '../../../../src/ol/geom/MultiPoint.js';
|
||||
import MultiPolygon from '../../../../src/ol/geom/MultiPolygon.js';
|
||||
import CanvasReplayGroup from '../../../../src/ol/render/canvas/ReplayGroup.js';
|
||||
import _ol_renderer_vector_ from '../../../../src/ol/renderer/vector.js';
|
||||
import {renderFeature} from '../../../../src/ol/renderer/vector.js';
|
||||
import Fill from '../../../../src/ol/style/Fill.js';
|
||||
import Icon from '../../../../src/ol/style/Icon.js';
|
||||
import Stroke from '../../../../src/ol/style/Stroke.js';
|
||||
@@ -50,7 +50,7 @@ describe('ol.renderer.vector', function() {
|
||||
let listeners;
|
||||
|
||||
// call #1
|
||||
_ol_renderer_vector_.renderFeature(replayGroup, feature,
|
||||
renderFeature(replayGroup, feature,
|
||||
style, squaredTolerance, listener, listenerThis);
|
||||
|
||||
expect(iconStyleLoadSpy.calledOnce).to.be.ok();
|
||||
@@ -59,7 +59,7 @@ describe('ol.renderer.vector', function() {
|
||||
expect(listeners.length).to.eql(1);
|
||||
|
||||
// call #2
|
||||
_ol_renderer_vector_.renderFeature(replayGroup, feature,
|
||||
renderFeature(replayGroup, feature,
|
||||
style, squaredTolerance, listener, listenerThis);
|
||||
|
||||
expect(iconStyleLoadSpy.calledOnce).to.be.ok();
|
||||
@@ -78,7 +78,7 @@ describe('ol.renderer.vector', function() {
|
||||
style.getZIndex(), 'Image');
|
||||
const setImageStyleSpy = sinon.spy(imageReplay, 'setImageStyle');
|
||||
const drawPointSpy = sinon.stub(imageReplay, 'drawPoint').callsFake(nullFunction);
|
||||
_ol_renderer_vector_.renderFeature(replayGroup, feature,
|
||||
renderFeature(replayGroup, feature,
|
||||
style, squaredTolerance, listener, listenerThis);
|
||||
expect(setImageStyleSpy.called).to.be(false);
|
||||
setImageStyleSpy.restore();
|
||||
@@ -91,7 +91,7 @@ describe('ol.renderer.vector', function() {
|
||||
style.getZIndex(), 'Image');
|
||||
const setImageStyleSpy = sinon.spy(imageReplay, 'setImageStyle');
|
||||
const drawMultiPointSpy = sinon.stub(imageReplay, 'drawMultiPoint').callsFake(nullFunction);
|
||||
_ol_renderer_vector_.renderFeature(replayGroup, feature,
|
||||
renderFeature(replayGroup, feature,
|
||||
style, squaredTolerance, listener, listenerThis);
|
||||
expect(setImageStyleSpy.called).to.be(false);
|
||||
setImageStyleSpy.restore();
|
||||
@@ -105,7 +105,7 @@ describe('ol.renderer.vector', function() {
|
||||
const setFillStrokeStyleSpy = sinon.spy(lineStringReplay,
|
||||
'setFillStrokeStyle');
|
||||
const drawLineStringSpy = sinon.stub(lineStringReplay, 'drawLineString').callsFake(nullFunction);
|
||||
_ol_renderer_vector_.renderFeature(replayGroup, feature,
|
||||
renderFeature(replayGroup, feature,
|
||||
style, squaredTolerance, listener, listenerThis);
|
||||
expect(setFillStrokeStyleSpy.called).to.be(true);
|
||||
expect(drawLineStringSpy.called).to.be(true);
|
||||
@@ -120,7 +120,7 @@ describe('ol.renderer.vector', function() {
|
||||
const setFillStrokeStyleSpy = sinon.spy(lineStringReplay,
|
||||
'setFillStrokeStyle');
|
||||
const drawMultiLineStringSpy = sinon.stub(lineStringReplay, 'drawMultiLineString').callsFake(nullFunction);
|
||||
_ol_renderer_vector_.renderFeature(replayGroup, feature,
|
||||
renderFeature(replayGroup, feature,
|
||||
style, squaredTolerance, listener, listenerThis);
|
||||
expect(setFillStrokeStyleSpy.called).to.be(true);
|
||||
expect(drawMultiLineStringSpy.called).to.be(true);
|
||||
@@ -136,7 +136,7 @@ describe('ol.renderer.vector', function() {
|
||||
const setFillStrokeStyleSpy = sinon.spy(polygonReplay,
|
||||
'setFillStrokeStyle');
|
||||
const drawPolygonSpy = sinon.stub(polygonReplay, 'drawPolygon').callsFake(nullFunction);
|
||||
_ol_renderer_vector_.renderFeature(replayGroup, feature,
|
||||
renderFeature(replayGroup, feature,
|
||||
style, squaredTolerance, listener, listenerThis);
|
||||
expect(setFillStrokeStyleSpy.called).to.be(true);
|
||||
expect(drawPolygonSpy.called).to.be(true);
|
||||
@@ -152,7 +152,7 @@ describe('ol.renderer.vector', function() {
|
||||
const setFillStrokeStyleSpy = sinon.spy(polygonReplay,
|
||||
'setFillStrokeStyle');
|
||||
const drawMultiPolygonSpy = sinon.stub(polygonReplay, 'drawMultiPolygon').callsFake(nullFunction);
|
||||
_ol_renderer_vector_.renderFeature(replayGroup, feature,
|
||||
renderFeature(replayGroup, feature,
|
||||
style, squaredTolerance, listener, listenerThis);
|
||||
expect(setFillStrokeStyleSpy.called).to.be(true);
|
||||
expect(drawMultiPolygonSpy.called).to.be(true);
|
||||
|
||||
Reference in New Issue
Block a user