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