diff --git a/src/ol/render/canvas/replay.js b/src/ol/render/canvas/replay.js index 18fb4c1d66..42e61d18f6 100644 --- a/src/ol/render/canvas/replay.js +++ b/src/ol/render/canvas/replay.js @@ -89,7 +89,7 @@ ol.render.canvas.Replay = function(tolerance, maxExtent, resolution, overlaps) { /** * @private - * @type {ol.Transform} + * @type {!ol.Transform} */ this.renderedTransform_ = ol.transform.create(); @@ -103,17 +103,17 @@ ol.render.canvas.Replay = function(tolerance, maxExtent, resolution, overlaps) { * @private * @type {Array.} */ - this.pixelCoordinates_ = []; + this.pixelCoordinates_ = null; /** * @private - * @type {ol.Transform} + * @type {!ol.Transform} */ this.tmpLocalTransform_ = ol.transform.create(); /** * @private - * @type {ol.Transform} + * @type {!ol.Transform} */ this.resetTransform_ = ol.transform.create(); }; @@ -229,9 +229,12 @@ ol.render.canvas.Replay.prototype.replay_ = function( instructions, featureCallback, opt_hitExtent) { /** @type {Array.} */ var pixelCoordinates; - if (ol.array.equals(transform, this.renderedTransform_)) { + if (this.pixelCoordinates_ && ol.array.equals(transform, this.renderedTransform_)) { pixelCoordinates = this.pixelCoordinates_; } else { + if (!this.pixelCoordinates_) { + this.pixelCoordinates_ = []; + } pixelCoordinates = ol.geom.flat.transform.transform2D( this.coordinates, 0, this.coordinates.length, 2, transform, this.pixelCoordinates_); diff --git a/src/ol/typedefs.js b/src/ol/typedefs.js index 6985f6a158..659afd2a8a 100644 --- a/src/ol/typedefs.js +++ b/src/ol/typedefs.js @@ -360,7 +360,7 @@ ol.MapOptionsInternal; /** * An array representing an affine 2d transformation for use with * {@link ol.transform} functions. The array has 6 elements. - * @typedef {Array.} + * @typedef {!Array.} */ ol.Transform;