TextSymbolizer->Fill->CssParameter['fill'] should map to fontColor instead
This commit is contained in:
@@ -338,6 +338,10 @@ OpenLayers.Format.SLD.v1 = OpenLayers.Class(OpenLayers.Format.Filter.v1_0_0, {
|
||||
"CssParameter": function(node, symbolizer) {
|
||||
var cssProperty = node.getAttribute("name");
|
||||
var symProperty = this.cssMap[cssProperty];
|
||||
// for labels, fill should map to the fontColor
|
||||
if (symbolizer.label && cssProperty === 'fill') {
|
||||
symProperty = "fontColor";
|
||||
}
|
||||
if(symProperty) {
|
||||
// Limited support for parsing of OGC expressions
|
||||
var value = this.readers.ogc._expression.call(this, node);
|
||||
@@ -862,10 +866,15 @@ OpenLayers.Format.SLD.v1 = OpenLayers.Class(OpenLayers.Format.Filter.v1_0_0, {
|
||||
return node;
|
||||
},
|
||||
"CssParameter": function(obj) {
|
||||
var name = this.getCssProperty(obj.key);
|
||||
var value = obj.symbolizer[obj.key];
|
||||
if (obj.symbolizer.label && name === 'fill') {
|
||||
value = obj.symbolizer.fontColor;
|
||||
}
|
||||
// not handling ogc:expressions for now
|
||||
return this.createElementNSPlus("sld:CssParameter", {
|
||||
attributes: {name: this.getCssProperty(obj.key)},
|
||||
value: obj.symbolizer[obj.key]
|
||||
attributes: {name: name},
|
||||
value: value
|
||||
});
|
||||
},
|
||||
"TextSymbolizer": function(symbolizer) {
|
||||
@@ -888,7 +897,7 @@ OpenLayers.Format.SLD.v1 = OpenLayers.Class(OpenLayers.Format.Filter.v1_0_0, {
|
||||
this.writeNode("Halo", symbolizer, node);
|
||||
}
|
||||
// add in optional Fill
|
||||
if(symbolizer.fillColor != null ||
|
||||
if(symbolizer.fontColor != null ||
|
||||
symbolizer.fillOpacity != null) {
|
||||
this.writeNode("Fill", symbolizer, node);
|
||||
}
|
||||
@@ -1004,7 +1013,7 @@ OpenLayers.Format.SLD.v1 = OpenLayers.Class(OpenLayers.Format.Filter.v1_0_0, {
|
||||
// GraphicFill here
|
||||
|
||||
// add in CssParameters
|
||||
if(symbolizer.fillColor) {
|
||||
if(symbolizer.fillColor || (symbolizer.label && symbolizer.fontColor)) {
|
||||
this.writeNode(
|
||||
"CssParameter",
|
||||
{symbolizer: symbolizer, key: "fillColor"},
|
||||
|
||||
@@ -177,7 +177,7 @@
|
||||
t.eq(text.label, "A ${FOO} label", "(AAA161) first rule has proper text label");
|
||||
t.eq(layer.userStyles[0].propertyStyles["label"], true, "label added to propertyStyles");
|
||||
t.eq(text.fontFamily, "Arial", "(AAA161) first rule has proper font family");
|
||||
t.eq(text.fillColor, "#000000", "(AAA161) first rule has proper text fill");
|
||||
t.eq(text.fontColor, "#000000", "(AAA161) first rule has proper text fill");
|
||||
t.eq(text.haloRadius, "3", "(AAA161) first rule has proper halo radius");
|
||||
t.eq(text.haloColor, "#ffffff", "(AAA161) first rule has proper halo color");
|
||||
|
||||
@@ -347,7 +347,7 @@
|
||||
"label": "This is the ${city} in ${state}.",
|
||||
"fontFamily": "Arial",
|
||||
"fontSize": 10,
|
||||
"fillColor": "blue",
|
||||
"fontColor": "blue",
|
||||
"fontWeight": "bold",
|
||||
"fontStyle": "normal",
|
||||
"haloRadius": 2,
|
||||
|
||||
Reference in New Issue
Block a user