From 299d729936dbc742060e938bbf404c80cdeac9e6 Mon Sep 17 00:00:00 2001 From: ahocevar Date: Mon, 11 Nov 2013 21:52:19 +0100 Subject: [PATCH] Make filter optional --- src/ol/layer/vectorlayer.js | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/ol/layer/vectorlayer.js b/src/ol/layer/vectorlayer.js index 890aa54ab1..818a0794af 100644 --- a/src/ol/layer/vectorlayer.js +++ b/src/ol/layer/vectorlayer.js @@ -264,16 +264,22 @@ ol.layer.Vector.prototype.getStyle = function() { /** * Returns an array of features that match a filter. This will not fetch data, * it only considers features that are loaded already. - * @param {function(ol.Feature):boolean} filter Filter function. - * @return {Array.} Features that match the filter. + * @param {(function(ol.Feature):boolean)=} opt_filter Filter function. + * @return {Array.} Features that match the filter, or all features + * if no filter was provided. */ -ol.layer.Vector.prototype.getFeatures = function(filter) { +ol.layer.Vector.prototype.getFeatures = function(opt_filter) { + var result; var features = this.featureCache_.getFeaturesObject(); - var result = []; - for (var f in features) { - if (filter(features[f]) === true) { - result.push(features[f]); + if (goog.isDef(opt_filter)) { + result = []; + for (var f in features) { + if (opt_filter(features[f]) === true) { + result.push(features[f]); + } } + } else { + result = goog.object.getValues(features); } return result; };