[OpenLayers-Users] Changing single vector feature style
overwrites other default values
Andreas Hocevar
andreas.hocevar at gmail.com
Fri Jul 25 03:52:27 EDT 2008
Ian wrote:
> After drawing point features in a vector layer, when a single style
> attribute is changed for a point it appears that its default values
> are being overwritten. Specifically, if I only change the fillColor of
> a point its default values are erased or changed. Example:
>
> var myFeatures = new OpenLayers.Layer.Vector("My Features");
>
> var testPt1 = new OpenLayers.Feature.Vector(new
> OpenLayers.Geometry.Point(-118, 35));
> var testPt2 = new OpenLayers.Feature.Vector(new
> OpenLayers.Geometry.Point(-117, 35));
> myFeatures.addFeatures([testPt1,testPt2]);
>
> testPt2.style = {fillColor: 'red'};
> myFeatures.drawFeature(testPt2);
By doing this, you override the default style for the feature, which
will cause a minimal style to be used. Instead, you have to apply the
defaults from your layer's styleMap or style. In your code snippet, this
would be OpenLayers.Feature.Vector.style["default"]:
testPt2.style = OpenLayers.Util.applyDefaults({fillColor: "red"},
OpenLayers.Feature.Vector.style["default"]);
For more details on styling, see http://trac.openlayers.org/wiki/Styles
Regards,
Andreas.
More information about the Users
mailing list