diff options
Diffstat (limited to 'web')
-rw-r--r-- | web/cobrands/fixmystreet/assets.js | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/web/cobrands/fixmystreet/assets.js b/web/cobrands/fixmystreet/assets.js index 3016a381c..dd51242fb 100644 --- a/web/cobrands/fixmystreet/assets.js +++ b/web/cobrands/fixmystreet/assets.js @@ -481,11 +481,21 @@ fixmystreet.assets = { layer_options.projection = new OpenLayers.Projection(fixmystreet.wmts_config.map_projection); } if (options.filter_key) { - layer_options.filter = new OpenLayers.Filter.Comparison({ - type: OpenLayers.Filter.Comparison.EQUAL_TO, - property: options.filter_key, - value: options.filter_value - }); + if (OpenLayers.Util.isArray(options.filter_value)) { + layer_options.filter = new OpenLayers.Filter.FeatureId({ + type: OpenLayers.Filter.Function, + evaluate: function(f) { + return options.filter_value.indexOf(f.attributes[options.filter_key]) != -1; + } + }); + layer_options.strategies.push(new OpenLayers.Strategy.Filter({filter: layer_options.filter})); + } else { + layer_options.filter = new OpenLayers.Filter.Comparison({ + type: OpenLayers.Filter.Comparison.EQUAL_TO, + property: options.filter_key, + value: options.filter_value + }); + } } var asset_layer = new OpenLayers.Layer.Vector(options.name || "WFS", layer_options); |