fixed use of the "fill" and "stroke" symbolizer properties in Renderer and Format.SLD to match the documentation (i.e. false means to not apply a fill or stroke)

git-svn-id: http://svn.openlayers.org/trunk/openlayers@10430 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
ahocevar
2010-06-29 08:21:26 +00:00
parent 0db8f59ae3
commit 2939bad8d0
2 changed files with 15 additions and 17 deletions
+13 -10
View File
@@ -244,14 +244,21 @@ OpenLayers.Format.SLD.v1 = OpenLayers.Class(OpenLayers.Format.Filter.v1_0_0, {
}, },
"PolygonSymbolizer": function(node, rule) { "PolygonSymbolizer": function(node, rule) {
// OpenLayers doens't do painter's order, instead we extend // OpenLayers doens't do painter's order, instead we extend
var symbolizer = rule.symbolizer["Polygon"] || {}; var symbolizer = rule.symbolizer["Polygon"] || {
fill: false,
stroke: false
};
this.readChildNodes(node, symbolizer); this.readChildNodes(node, symbolizer);
// in case it didn't exist before // in case it didn't exist before
rule.symbolizer["Polygon"] = symbolizer; rule.symbolizer["Polygon"] = symbolizer;
}, },
"PointSymbolizer": function(node, rule) { "PointSymbolizer": function(node, rule) {
// OpenLayers doens't do painter's order, instead we extend // OpenLayers doens't do painter's order, instead we extend
var symbolizer = rule.symbolizer["Point"] || {}; var symbolizer = rule.symbolizer["Point"] || {
fill: false,
stroke: false,
graphic: false
};
this.readChildNodes(node, symbolizer); this.readChildNodes(node, symbolizer);
// in case it didn't exist before // in case it didn't exist before
rule.symbolizer["Point"] = symbolizer; rule.symbolizer["Point"] = symbolizer;
@@ -283,8 +290,8 @@ OpenLayers.Format.SLD.v1 = OpenLayers.Class(OpenLayers.Format.Filter.v1_0_0, {
this.readChildNodes(node, graphic); this.readChildNodes(node, graphic);
// directly properties with names that match symbolizer properties // directly properties with names that match symbolizer properties
var properties = [ var properties = [
"strokeColor", "strokeWidth", "strokeOpacity", "stroke", "strokeColor", "strokeWidth", "strokeOpacity",
"strokeLinecap", "fillColor", "fillOpacity", "strokeLinecap", "fill", "fillColor", "fillOpacity",
"graphicName", "rotation", "graphicFormat" "graphicName", "rotation", "graphicFormat"
]; ];
var prop, value; var prop, value;
@@ -849,14 +856,10 @@ OpenLayers.Format.SLD.v1 = OpenLayers.Class(OpenLayers.Format.Filter.v1_0_0, {
}, },
"PolygonSymbolizer": function(symbolizer) { "PolygonSymbolizer": function(symbolizer) {
var node = this.createElementNSPlus("sld:PolygonSymbolizer"); var node = this.createElementNSPlus("sld:PolygonSymbolizer");
if(symbolizer.fillColor != undefined || if(symbolizer.fill !== false) {
symbolizer.fillOpacity != undefined) {
this.writeNode("Fill", symbolizer, node); this.writeNode("Fill", symbolizer, node);
} }
if(symbolizer.strokeWidth != undefined || if(symbolizer.stroke !== false) {
symbolizer.strokeColor != undefined ||
symbolizer.strokeOpacity != undefined ||
symbolizer.strokeDashstyle != undefined) {
this.writeNode("Stroke", symbolizer, node); this.writeNode("Stroke", symbolizer, node);
} }
return node; return node;
+2 -7
View File
@@ -316,16 +316,11 @@ OpenLayers.Renderer = OpenLayers.Class({
applyDefaultSymbolizer: function(symbolizer) { applyDefaultSymbolizer: function(symbolizer) {
var result = OpenLayers.Util.extend({}, var result = OpenLayers.Util.extend({},
OpenLayers.Renderer.defaultSymbolizer); OpenLayers.Renderer.defaultSymbolizer);
if(symbolizer.stroke !== true && if(symbolizer.stroke === false) {
symbolizer.strokeWidth === undefined &&
symbolizer.strokeColor === undefined &&
symbolizer.strokeOpacity === undefined) {
delete result.strokeWidth; delete result.strokeWidth;
delete result.strokeColor; delete result.strokeColor;
} }
if(symbolizer.fill !== true && if(symbolizer.fill === false) {
symbolizer.fillColor === undefined &&
symbolizer.fillOpacity === undefined) {
delete result.fillColor; delete result.fillColor;
} }
OpenLayers.Util.extend(result, symbolizer); OpenLayers.Util.extend(result, symbolizer);