Fix for undefined source in Vector layer

A source left or set undefined is equivalent to an empty source so treat it as such to prevent errors in prepareFrame
This commit is contained in:
mike-000
2020-01-01 21:04:12 +00:00
committed by GitHub
parent 6063021792
commit f48704cac4

View File

@@ -11,6 +11,16 @@ import CanvasLayerRenderer from './Layer.js';
import {defaultOrder as defaultRenderOrder, getTolerance as getRenderTolerance, getSquaredTolerance as getSquaredRenderTolerance, renderFeature} from '../vector.js';
import {toString as transformToString, makeScale, makeInverse, apply} from '../../transform.js';
import {createHitDetectionImageData, hitDetect} from '../../render/canvas/hitdetect.js';
import VectorSource from '../../source/Vector.js';
/**
* @const
* @type {VectorSource}
* @private
*/
const emptySource = new VectorSource();
/**
* @classdesc
@@ -328,7 +338,7 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
*/
prepareFrame(frameState) {
const vectorLayer = this.getLayer();
const vectorSource = vectorLayer.getSource();
const vectorSource = vectorLayer.getSource() || emptySource;
const animating = frameState.viewHints[ViewHint.ANIMATING];
const interacting = frameState.viewHints[ViewHint.INTERACTING];