diff --git a/lib/OpenLayers/Format/SLD/v1.js b/lib/OpenLayers/Format/SLD/v1.js index f934f80d65..cd32810be9 100644 --- a/lib/OpenLayers/Format/SLD/v1.js +++ b/lib/OpenLayers/Format/SLD/v1.js @@ -990,12 +990,14 @@ OpenLayers.Format.SLD.v1 = OpenLayers.Class(OpenLayers.Format.Filter.v1_0_0, { }, "LabelPlacement": function(symbolizer) { var node = this.createElementNSPlus("sld:LabelPlacement"); - if (symbolizer.labelAnchorPointX != null || + // PointPlacement and LinePlacement are choices, so don't output both + if ((symbolizer.labelAnchorPointX != null || symbolizer.labelAnchorPointY != null || symbolizer.labelAlign != null || symbolizer.labelXOffset != null || symbolizer.labelYOffset != null || - symbolizer.labelRotation != null) { + symbolizer.labelRotation != null) && + symbolizer.labelPerpendicularOffset == null) { this.writeNode("PointPlacement", symbolizer, node); } if (symbolizer.labelPerpendicularOffset != null) { diff --git a/tests/Format/SLD/v1_0_0.html b/tests/Format/SLD/v1_0_0.html index af58c30c7d..46794902f0 100644 --- a/tests/Format/SLD/v1_0_0.html +++ b/tests/Format/SLD/v1_0_0.html @@ -538,7 +538,8 @@ }), new OpenLayers.Symbolizer.Text({ label: "${FOO}", - labelPerpendicularOffset: 10 + labelPerpendicularOffset: 10, + labelAlign: "rb" }) ] })