Make select interaction create its FeatureOverlay

You can now configure it with a `style` option.
This commit is contained in:
Antoine Abt
2014-02-21 11:59:43 +01:00
parent fe159aa7fa
commit 7cea6f3240
5 changed files with 15 additions and 12 deletions

View File

@@ -227,12 +227,15 @@ var overlayStyle = (function() {
}; };
})(); })();
var select = new ol.interaction.Select({
style: overlayStyle
});
var overlay = new ol.FeatureOverlay({ var overlay = new ol.FeatureOverlay({
features: select.getFeatures(),
style: overlayStyle style: overlayStyle
}); });
var modify = new ol.interaction.Modify({ featureOverlay: overlay }); var modify = new ol.interaction.Modify({ featureOverlay: overlay });
var select = new ol.interaction.Select({ featureOverlay: overlay });
var map = new ol.Map({ var map = new ol.Map({
interactions: ol.interaction.defaults().extend([select, modify]), interactions: ol.interaction.defaults().extend([select, modify]),

View File

@@ -31,11 +31,9 @@ var vector = new ol.layer.Vector({
}); });
var select = new ol.interaction.Select({ var select = new ol.interaction.Select({
featureOverlay: new ol.FeatureOverlay({ style: new ol.style.Style({
style: new ol.style.Style({ fill: new ol.style.Fill({
fill: new ol.style.Fill({ color: 'rgba(255,255,255,0.5)'
color: 'rgba(255,255,255,0.5)'
})
}) })
}) })
}); });

View File

@@ -440,7 +440,7 @@
* features should be selected. * features should be selected.
* @property {Array.<ol.layer.Layer>|undefined} layers Layers. Zero or more * @property {Array.<ol.layer.Layer>|undefined} layers Layers. Zero or more
* layers from which features should be selected. * layers from which features should be selected.
* @property {ol.FeatureOverlay} featureOverlay Feature overlay. * @property {ol.style.Style|Array.<ol.style.Style>|ol.feature.StyleFunction|undefined} style FeatureOverlay style.
*/ */
/** /**

View File

@@ -1,3 +1,3 @@
@exportSymbol ol.interaction.Select @exportSymbol ol.interaction.Select
@exportProperty ol.interaction.Select.prototype.getFeatureOverlay @exportProperty ol.interaction.Select.prototype.getFeatures
@exportProperty ol.interaction.Select.prototype.setMap @exportProperty ol.interaction.Select.prototype.setMap

View File

@@ -69,18 +69,20 @@ ol.interaction.Select = function(options) {
* @private * @private
* @type {ol.FeatureOverlay} * @type {ol.FeatureOverlay}
*/ */
this.featureOverlay_ = options.featureOverlay; this.featureOverlay_ = new ol.FeatureOverlay({
style: options.style
});
}; };
goog.inherits(ol.interaction.Select, ol.interaction.Interaction); goog.inherits(ol.interaction.Select, ol.interaction.Interaction);
/** /**
* @return {ol.FeatureOverlay} Feature overlay. * @return {ol.Collection} Features collection.
* @todo stability experimental * @todo stability experimental
*/ */
ol.interaction.Select.prototype.getFeatureOverlay = function() { ol.interaction.Select.prototype.getFeatures = function() {
return this.featureOverlay_; return this.featureOverlay_.getFeatures();
}; };