From 7cea6f32406146b869b14d6f72142b6095b8c115 Mon Sep 17 00:00:00 2001 From: Antoine Abt Date: Fri, 21 Feb 2014 11:59:43 +0100 Subject: [PATCH] Make select interaction create its FeatureOverlay You can now configure it with a `style` option. --- examples/modify-features.js | 5 ++++- examples/select-features.js | 8 +++----- src/objectliterals.jsdoc | 2 +- src/ol/interaction/selectinteraction.exports | 2 +- src/ol/interaction/selectinteraction.js | 10 ++++++---- 5 files changed, 15 insertions(+), 12 deletions(-) diff --git a/examples/modify-features.js b/examples/modify-features.js index ed8bb3714c..b33a76a5b1 100644 --- a/examples/modify-features.js +++ b/examples/modify-features.js @@ -227,12 +227,15 @@ var overlayStyle = (function() { }; })(); +var select = new ol.interaction.Select({ + style: overlayStyle +}); var overlay = new ol.FeatureOverlay({ + features: select.getFeatures(), style: overlayStyle }); var modify = new ol.interaction.Modify({ featureOverlay: overlay }); -var select = new ol.interaction.Select({ featureOverlay: overlay }); var map = new ol.Map({ interactions: ol.interaction.defaults().extend([select, modify]), diff --git a/examples/select-features.js b/examples/select-features.js index def9194a29..4ec79a296a 100644 --- a/examples/select-features.js +++ b/examples/select-features.js @@ -31,11 +31,9 @@ var vector = new ol.layer.Vector({ }); var select = new ol.interaction.Select({ - featureOverlay: new ol.FeatureOverlay({ - style: new ol.style.Style({ - fill: new ol.style.Fill({ - color: 'rgba(255,255,255,0.5)' - }) + style: new ol.style.Style({ + fill: new ol.style.Fill({ + color: 'rgba(255,255,255,0.5)' }) }) }); diff --git a/src/objectliterals.jsdoc b/src/objectliterals.jsdoc index b8c3cf296b..9d318f297b 100644 --- a/src/objectliterals.jsdoc +++ b/src/objectliterals.jsdoc @@ -440,7 +440,7 @@ * features should be selected. * @property {Array.|undefined} layers Layers. Zero or more * layers from which features should be selected. - * @property {ol.FeatureOverlay} featureOverlay Feature overlay. + * @property {ol.style.Style|Array.|ol.feature.StyleFunction|undefined} style FeatureOverlay style. */ /** diff --git a/src/ol/interaction/selectinteraction.exports b/src/ol/interaction/selectinteraction.exports index 57e82dce4b..eeccc7e10a 100644 --- a/src/ol/interaction/selectinteraction.exports +++ b/src/ol/interaction/selectinteraction.exports @@ -1,3 +1,3 @@ @exportSymbol ol.interaction.Select -@exportProperty ol.interaction.Select.prototype.getFeatureOverlay +@exportProperty ol.interaction.Select.prototype.getFeatures @exportProperty ol.interaction.Select.prototype.setMap diff --git a/src/ol/interaction/selectinteraction.js b/src/ol/interaction/selectinteraction.js index d93eb2aa8c..1b6b44104a 100644 --- a/src/ol/interaction/selectinteraction.js +++ b/src/ol/interaction/selectinteraction.js @@ -69,18 +69,20 @@ ol.interaction.Select = function(options) { * @private * @type {ol.FeatureOverlay} */ - this.featureOverlay_ = options.featureOverlay; + this.featureOverlay_ = new ol.FeatureOverlay({ + style: options.style + }); }; goog.inherits(ol.interaction.Select, ol.interaction.Interaction); /** - * @return {ol.FeatureOverlay} Feature overlay. + * @return {ol.Collection} Features collection. * @todo stability experimental */ -ol.interaction.Select.prototype.getFeatureOverlay = function() { - return this.featureOverlay_; +ol.interaction.Select.prototype.getFeatures = function() { + return this.featureOverlay_.getFeatures(); };