diff --git a/lib/OpenLayers/Format/SLD/v1_0_0_GeoServer.js b/lib/OpenLayers/Format/SLD/v1_0_0_GeoServer.js index 40e09bc0da..53f7f6d22f 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_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 @@ --> +