diff --git a/lib/OpenLayers/Format/SLD/v1.js b/lib/OpenLayers/Format/SLD/v1.js
index cb52b3775d..187bd9cc4a 100644
--- a/lib/OpenLayers/Format/SLD/v1.js
+++ b/lib/OpenLayers/Format/SLD/v1.js
@@ -786,7 +786,7 @@ OpenLayers.Format.SLD.v1 = OpenLayers.Class(OpenLayers.Format.Filter.v1_0_0, {
var node = this.createElementNSPlus("Graphic");
if(symbolizer.externalGraphic != undefined) {
this.writeNode("ExternalGraphic", symbolizer, node);
- } else if(symbolizer.graphicName) {
+ } else {
this.writeNode("Mark", symbolizer, node);
}
@@ -813,7 +813,9 @@ OpenLayers.Format.SLD.v1 = OpenLayers.Class(OpenLayers.Format.Filter.v1_0_0, {
},
"Mark": function(symbolizer) {
var node = this.createElementNSPlus("Mark");
- this.writeNode("WellKnownName", symbolizer.graphicName, node);
+ if(symbolizer.graphicName) {
+ this.writeNode("WellKnownName", symbolizer.graphicName, node);
+ }
this.writeNode("Fill", symbolizer, node);
this.writeNode("Stroke", symbolizer, node);
return node;
diff --git a/tests/Format/SLD/v1_0_0.html b/tests/Format/SLD/v1_0_0.html
index fd87a00b90..e7843723c4 100644
--- a/tests/Format/SLD/v1_0_0.html
+++ b/tests/Format/SLD/v1_0_0.html
@@ -214,6 +214,69 @@
t.xml_eq(got, expect, "zero fill opacity written");
}
+ function test_writePointSymbolizer(t) {
+
+ t.plan(3);
+
+ var parser = new OpenLayers.Format.SLD.v1_0_0();
+ var symbolizer, node, exp;
+
+ // test symbolizer with fill color only
+ symbolizer = {
+ "fillColor": "blue"
+ };
+ node = parser.writeNode("sld:PointSymbolizer", symbolizer);
+ exp =
+ '' +
+ '' +
+ '' +
+ '' +
+ 'blue' +
+ '' +
+ '' +
+ '' +
+ '
' +
+ '';
+ t.xml_eq(node, exp, "fillColor only written");
+
+ // test symbolizer with stroke color only
+ symbolizer = {
+ "strokeColor": "blue"
+ };
+ node = parser.writeNode("sld:PointSymbolizer", symbolizer);
+ exp =
+ '' +
+ '' +
+ '' +
+ '' +
+ '' +
+ 'blue' +
+ '' +
+ '' +
+ '
' +
+ '';
+ t.xml_eq(node, exp, "strokeColor only written");
+
+ // test symbolizer with graphic name only
+ symbolizer = {
+ "graphicName": "star"
+ };
+ node = parser.writeNode("sld:PointSymbolizer", symbolizer);
+ exp =
+ '' +
+ '' +
+ '' +
+ 'star' +
+ '' +
+ '' +
+ '' +
+ '
' +
+ '';
+ t.xml_eq(node, exp, "graphicName only written");
+
+
+ }
+
function test_writeTextSymbolizer(t) {
t.plan(1);
var parser = new OpenLayers.Format.SLD.v1_0_0();