From a64e3c1d3ef4055d382f052396ba2dfae8f1981e Mon Sep 17 00:00:00 2001 From: Andreas Hocevar Date: Wed, 13 Jul 2016 14:23:41 +0200 Subject: [PATCH] Add renderBuffer option for ol.source.ImageVector --- externs/olx.js | 12 ++++++++++++ src/ol/source/imagevectorsource.js | 8 +++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/externs/olx.js b/externs/olx.js index 5fe169fb10..31060381b0 100644 --- a/externs/olx.js +++ b/externs/olx.js @@ -4970,6 +4970,7 @@ olx.source.ImageCanvasOptions.prototype.state; * logo: (string|olx.LogoOptions|undefined), * projection: ol.ProjectionLike, * ratio: (number|undefined), + * renderBuffer: (number|undefined), * resolutions: (Array.|undefined), * source: ol.source.Vector, * style: (ol.style.Style|Array.|ol.StyleFunction|undefined)}} @@ -5011,6 +5012,17 @@ olx.source.ImageVectorOptions.prototype.projection; olx.source.ImageVectorOptions.prototype.ratio; +/** + * The buffer around the viewport extent used by the renderer when getting + * features from the vector source for the rendering or hit-detection. + * Recommended value: the size of the largest symbol, line width or label. + * Default is 100 pixels. + * @type {number|undefined} + * @api + */ +olx.source.ImageVectorOptions.prototype.renderBuffer; + + /** * Resolutions. If specified, new canvases will be created for these resolutions * only. diff --git a/src/ol/source/imagevectorsource.js b/src/ol/source/imagevectorsource.js index f7e9324523..3c8287236c 100644 --- a/src/ol/source/imagevectorsource.js +++ b/src/ol/source/imagevectorsource.js @@ -56,6 +56,12 @@ ol.source.ImageVector = function(options) { */ this.canvasSize_ = [0, 0]; + /** + * @private + * @type {number} + */ + this.renderBuffer_ = options.renderBuffer == undefined ? 100 : options.renderBuffer; + /** * @private * @type {ol.render.canvas.ReplayGroup} @@ -108,7 +114,7 @@ ol.source.ImageVector.prototype.canvasFunctionInternal_ = function(extent, resol var replayGroup = new ol.render.canvas.ReplayGroup( ol.renderer.vector.getTolerance(resolution, pixelRatio), extent, - resolution); + resolution, this.renderBuffer_); this.source_.loadFeatures(extent, resolution, projection);