Hi, I want to be able to save a OpenLayers.Style object or hash to a vector feature. Currently, in code, feature.style exists but you must define a hash or else it doesn't work.
My problem is that I want to be able to draw features to be used as labels (floating text on the map). To be able to do so, I need to define a StyleMap with a context to display the label (I manually set feature.isLabel on "featureadded") [1] That works well, but as soon as I want to "bind / save" the style to the feature, I mean set feature.style, I need to set a hash and the feature will be rendered without the contexts. I don't fully understand how the contexts, symbolizers, etc. work, but my first guess would be to support OpenLayers.Style object directly in the feature object. Does that make sense ? Or maybe I'm doing it wrong and their's an other way of "labeling" features. My goal is to create features on a "cosmetic" layer with a default style, then to be able to change the style of the features and bind it to them (I mean without using rules on the layer level, but by defining directly the feature style) Many many thanks, Alexandre // [1] START var labelStyle = { label: "${name}", labelSelect: true, pointRadius: "${radius}" }; var styleOptions = { context: { 'name': function(feature) { var szValue; if (feature.attributes['name'] && feature.isLabel === true) { szValue = feature.attributes['name']; } else { szValue = ""; } return szValue; }, 'radius': function(feature) { return (feature.isLabel === true) ? 0 : 6; } } }; var style = new OpenLayers.Style( OpenLayers.Util.applyDefaults( labelStyle,OpenLayers.Feature.Vector.style["default"]), styleOptions ); var styleMap = new OpenLayers.StyleMap({ "default": style }); layer = new OpenLayers.Layer.Vector( "Cosmetic", {'styleMap': styleMap}); // [1] END -- Alexandre Dubé Mapgears www.mapgears.com _______________________________________________ Dev mailing list Dev@openlayers.org http://openlayers.org/mailman/listinfo/dev