added partial support for RasterSymbolizer to Format.SLD. r=bartvde (closes #2642)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@10344 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
@@ -210,6 +210,29 @@ OpenLayers.Format.SLD.v1 = OpenLayers.Class(OpenLayers.Format.Filter.v1_0_0, {
|
||||
symbolizer.haloRadius = radius;
|
||||
}
|
||||
},
|
||||
"RasterSymbolizer": function(node, rule) {
|
||||
// OpenLayers doesn't do painter's order, instead we extend
|
||||
var symbolizer = rule.symbolizer["Raster"] || {};
|
||||
this.readChildNodes(node, symbolizer);
|
||||
// in case it didn't exist before
|
||||
rule.symbolizer["Raster"] = symbolizer;
|
||||
},
|
||||
"Geometry": function(node, obj) {
|
||||
obj.geometry = {};
|
||||
this.readChildNodes(node, obj.geometry);
|
||||
},
|
||||
"ColorMap": function(node, symbolizer) {
|
||||
symbolizer.colorMap = [];
|
||||
this.readChildNodes(node, symbolizer.colorMap);
|
||||
},
|
||||
"ColorMapEntry": function(node, colorMap) {
|
||||
colorMap.push({
|
||||
color: node.getAttribute("color"),
|
||||
quantity: node.getAttribute("quantity") || undefined,
|
||||
label: node.getAttribute("label") || undefined,
|
||||
opacity: node.getAttribute("opacity") || undefined
|
||||
});
|
||||
},
|
||||
"LineSymbolizer": function(node, rule) {
|
||||
// OpenLayers doesn't do painter's order, instead we extend
|
||||
var symbolizer = rule.symbolizer["Line"] || {};
|
||||
@@ -780,10 +803,48 @@ OpenLayers.Format.SLD.v1 = OpenLayers.Class(OpenLayers.Format.Filter.v1_0_0, {
|
||||
return node;
|
||||
},
|
||||
"Radius": function(value) {
|
||||
return node = this.createElementNSPlus("sld:Radius", {
|
||||
return this.createElementNSPlus("sld:Radius", {
|
||||
value: value
|
||||
});
|
||||
},
|
||||
"RasterSymbolizer": function(symbolizer) {
|
||||
var node = this.createElementNSPlus("sld:RasterSymbolizer");
|
||||
if (symbolizer.geometry) {
|
||||
this.writeNode("Geometry", symbolizer.geometry, node);
|
||||
}
|
||||
if (symbolizer.opacity) {
|
||||
this.writeNode("Opacity", symbolizer.opacity, node);
|
||||
}
|
||||
if (symbolizer.colorMap) {
|
||||
this.writeNode("ColorMap", symbolizer.colorMap, node);
|
||||
}
|
||||
return node;
|
||||
},
|
||||
"Geometry": function(geometry) {
|
||||
var node = this.createElementNSPlus("sld:Geometry");
|
||||
if (geometry.property) {
|
||||
this.writeNode("ogc:PropertyName", geometry, node);
|
||||
}
|
||||
return node;
|
||||
},
|
||||
"ColorMap": function(colorMap) {
|
||||
var node = this.createElementNSPlus("sld:ColorMap");
|
||||
for (var i=0, len=colorMap.length; i<len; ++i) {
|
||||
this.writeNode("ColorMapEntry", colorMap[i], node);
|
||||
}
|
||||
return node;
|
||||
},
|
||||
"ColorMapEntry": function(colorMapEntry) {
|
||||
var node = this.createElementNSPlus("sld:ColorMapEntry");
|
||||
var a = colorMapEntry;
|
||||
node.setAttribute("color", a.color);
|
||||
a.opacity && node.setAttribute("opacity",
|
||||
parseFloat(a.opacity));
|
||||
a.quantity && node.setAttribute("quantity",
|
||||
parseFloat(a.quantity));
|
||||
a.label && node.setAttribute("label", a.label);
|
||||
return node;
|
||||
},
|
||||
"PolygonSymbolizer": function(symbolizer) {
|
||||
var node = this.createElementNSPlus("sld:PolygonSymbolizer");
|
||||
if(symbolizer.fillColor != undefined ||
|
||||
|
||||
Reference in New Issue
Block a user