add support for LinePlacement

This commit is contained in:
Bart van den Eijnden
2012-02-24 15:42:49 +01:00
parent 6411a6c0ef
commit f05564cdb3
2 changed files with 75 additions and 4 deletions

View File

@@ -278,6 +278,16 @@ OpenLayers.Format.SLD.v1 = OpenLayers.Class(OpenLayers.Format.Filter.v1_0_0, {
symbolizer.labelYOffset = labelYOffset;
}
},
"LinePlacement": function(node, symbolizer) {
this.readChildNodes(node, symbolizer);
},
"PerpendicularOffset": function(node, symbolizer) {
var labelPerpendicularOffset = this.readers.ogc._expression.call(this, node);
// always string, could be empty string
if(labelPerpendicularOffset) {
symbolizer.labelPerpendicularOffset = labelPerpendicularOffset;
}
},
"Label": function(node, symbolizer) {
var value = this.readers.ogc._expression.call(this, node);
if (value) {
@@ -940,8 +950,9 @@ OpenLayers.Format.SLD.v1 = OpenLayers.Class(OpenLayers.Format.Filter.v1_0_0, {
this.writeNode("Font", symbolizer, node);
}
// add in optional LabelPlacement
if (symbolizer.labelAnchorPointX != null ||
symbolizer.labelAnchorPointY != null) {
if ((symbolizer.labelAnchorPointX != null ||
symbolizer.labelAnchorPointY != null) ||
symbolizer.labelPerpendicularOffset != null) {
this.writeNode("LabelPlacement", symbolizer, node);
}
// add in optional Halo
@@ -963,8 +974,21 @@ OpenLayers.Format.SLD.v1 = OpenLayers.Class(OpenLayers.Format.Filter.v1_0_0, {
symbolizer.labelAnchorPointY != null) {
this.writeNode("PointPlacement", symbolizer, node);
}
if (symbolizer.labelPerpendicularOffset != null) {
this.writeNode("LinePlacement", symbolizer, node);
}
return node;
},
"LinePlacement": function(symbolizer) {
var node = this.createElementNSPlus("sld:LinePlacement");
this.writeNode("PerpendicularOffset", symbolizer.labelPerpendicularOffset, node);
return node;
},
"PerpendicularOffset": function(value) {
return this.createElementNSPlus("sld:PerpendicularOffset", {
value: value
});
},
"PointPlacement": function(symbolizer) {
var node = this.createElementNSPlus("sld:PointPlacement");
if (symbolizer.labelAnchorPointX != null ||