diff --git a/src/ol/layer/Layer.js b/src/ol/layer/Layer.js index 14448b239f..be4b5245ff 100644 --- a/src/ol/layer/Layer.js +++ b/src/ol/layer/Layer.js @@ -210,6 +210,9 @@ class Layer extends BaseLayer { * an array of features. */ getFeatures(pixel) { + if (!this.renderer_) { + return new Promise((resolve) => resolve([])); + } return this.renderer_.getFeatures(pixel); } diff --git a/src/ol/renderer/canvas/VectorImageLayer.js b/src/ol/renderer/canvas/VectorImageLayer.js index 2bb1aaa272..ec3689b4c7 100644 --- a/src/ol/renderer/canvas/VectorImageLayer.js +++ b/src/ol/renderer/canvas/VectorImageLayer.js @@ -63,18 +63,14 @@ class CanvasVectorImageLayerRenderer extends CanvasImageLayerRenderer { * @return {Promise>} Promise that resolves with an array of features. */ getFeatures(pixel) { - if (this.vectorRenderer_) { - const vectorPixel = apply( - this.coordinateToVectorPixelTransform_, - apply(this.renderedPixelToCoordinateTransform_, pixel.slice()) - ); - return this.vectorRenderer_.getFeatures(vectorPixel); - } else { - const promise = new Promise(function (resolve, reject) { - resolve([]); - }); - return promise; + if (!this.vectorRenderer_) { + return new Promise((resolve) => resolve([])); } + const vectorPixel = apply( + this.coordinateToVectorPixelTransform_, + apply(this.renderedPixelToCoordinateTransform_, pixel.slice()) + ); + return this.vectorRenderer_.getFeatures(vectorPixel); } /**