diff --git a/lib/OpenLayers/Format/SLD/v1.js b/lib/OpenLayers/Format/SLD/v1.js index 9773e175ba..71855cbee0 100644 --- a/lib/OpenLayers/Format/SLD/v1.js +++ b/lib/OpenLayers/Format/SLD/v1.js @@ -207,9 +207,7 @@ OpenLayers.Format.SLD.v1 = OpenLayers.Class(OpenLayers.Format.Filter.v1_0_0, { rule.maxScaleDenominator = parseFloat(this.getChildValue(node)); }, "TextSymbolizer": function(node, rule) { - var config = { - graphic: false - }; + var config = {}; this.readChildNodes(node, config); if (this.multipleSymbolizers) { config.zIndex = this.featureTypeCounter; diff --git a/lib/OpenLayers/Format/SLD/v1_0_0_GeoServer.js b/lib/OpenLayers/Format/SLD/v1_0_0_GeoServer.js index ed3b958a1b..014a3ed857 100644 --- a/lib/OpenLayers/Format/SLD/v1_0_0_GeoServer.js +++ b/lib/OpenLayers/Format/SLD/v1_0_0_GeoServer.js @@ -61,6 +61,13 @@ OpenLayers.Format.SLD.v1_0_0_GeoServer = OpenLayers.Class( obj.vendorOptions = {}; } obj.vendorOptions[node.getAttribute("name")] = this.getChildValue(node); + }, + "TextSymbolizer": function(node, rule) { + OpenLayers.Format.SLD.v1_0_0.prototype.readers.sld.TextSymbolizer.apply(this, arguments); + var symbolizer = this.multipleSymbolizers ? rule.symbolizers[rule.symbolizers.length-1] : rule.symbolizer["Text"]; + if (symbolizer.graphic === undefined) { + symbolizer.graphic = false; + } } }, OpenLayers.Format.SLD.v1_0_0.prototype.readers["sld"]) }, OpenLayers.Format.SLD.v1_0_0.prototype.readers), diff --git a/tests/Format/SLD/v1_0_0.html b/tests/Format/SLD/v1_0_0.html index 88367a4d26..fbc18a6552 100644 --- a/tests/Format/SLD/v1_0_0.html +++ b/tests/Format/SLD/v1_0_0.html @@ -622,17 +622,6 @@ } - function test_readTextSymbolizer(t) { - t.plan(1); - var format = new OpenLayers.Format.SLD.v1_0_0({ - multipleSymbolizers: true, - namedLayersAsArray: true - }); - doc = readXML("point_pointwithdefaultlabel.sld"); - var sld = format.read(doc); - t.eq(sld.namedLayers[0].userStyles[0].rules[0].symbolizers[1].graphic, false, "graphic set to false on TextSymbolizer"); - } - function test_roundtrip(t) { t.plan(5); diff --git a/tests/Format/SLD/v1_0_0_GeoServer.html b/tests/Format/SLD/v1_0_0_GeoServer.html index 8793d59f14..96a3ef6e5d 100644 --- a/tests/Format/SLD/v1_0_0_GeoServer.html +++ b/tests/Format/SLD/v1_0_0_GeoServer.html @@ -37,6 +37,18 @@ out = format.write(data); t.xml_eq(out, readXML("poly_label_nographic.sld").documentElement, "If graphic is false no Graphic is outputted"); } + + function test_readTextSymbolizer(t) { + t.plan(1); + var format = new OpenLayers.Format.SLD({ + profile: "GeoServer", + multipleSymbolizers: true, + namedLayersAsArray: true + }); + doc = readXML("point_pointwithdefaultlabel.sld"); + var sld = format.read(doc); + t.eq(sld.namedLayers[0].userStyles[0].rules[0].symbolizers[1].graphic, false, "graphic set to false on TextSymbolizer"); + } @@ -174,5 +186,43 @@ --> +