Share editing default styles

This commit is contained in:
Antoine Abt
2014-02-24 11:17:39 +01:00
parent 24ad507710
commit 5cc1a986c2
6 changed files with 108 additions and 106 deletions
+20 -1
View File
@@ -5,6 +5,8 @@ goog.require('goog.functions');
goog.require('ol.Feature');
goog.require('ol.FeatureOverlay');
goog.require('ol.events.condition');
goog.require('ol.feature');
goog.require('ol.geom.GeometryType');
goog.require('ol.interaction.Interaction');
@@ -85,7 +87,8 @@ ol.interaction.Select = function(options) {
* @type {ol.FeatureOverlay}
*/
this.featureOverlay_ = new ol.FeatureOverlay({
style: options.style
style: (goog.isDef(options.style)) ? options.style :
ol.interaction.Select.getDefaultStyleFunction()
});
};
@@ -177,3 +180,19 @@ ol.interaction.Select.prototype.setMap = function(map) {
goog.base(this, 'setMap', map);
this.featureOverlay_.setMap(map);
};
/**
* @return {ol.feature.StyleFunction} Styles.
*/
ol.interaction.Select.getDefaultStyleFunction = function() {
var styles = ol.feature.createDefaultEditingStyles();
goog.array.extend(styles[ol.geom.GeometryType.POLYGON],
styles[ol.geom.GeometryType.LINE_STRING]);
goog.array.extend(styles[ol.geom.GeometryType.GEOMETRY_COLLECTION],
styles[ol.geom.GeometryType.LINE_STRING]);
return function(feature, resolution) {
return styles[feature.getGeometry().getType()];
};
};