addad namedLayersAsArray option to Format.SLD.v1. Patch by tschaub and
me, r=tschaub,me (closes #2005) git-svn-id: http://svn.openlayers.org/trunk/openlayers@9140 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
@@ -73,13 +73,20 @@ OpenLayers.Format.SLD.v1 = OpenLayers.Class(OpenLayers.Format.Filter.v1_0_0, {
|
||||
*
|
||||
* Parameters:
|
||||
* data - {DOMElement} An SLD document element.
|
||||
* options - {Object} Options for the reader.
|
||||
*
|
||||
* Valid options:
|
||||
* namedLayersAsArray - {Boolean} Generate a namedLayers array. If false,
|
||||
* the namedLayers property value will be an object keyed by layer name.
|
||||
* Default is false.
|
||||
*
|
||||
* Returns:
|
||||
* {Object} An object representing the SLD.
|
||||
*/
|
||||
read: function(data) {
|
||||
read: function(data, options) {
|
||||
options = OpenLayers.Util.applyDefaults(options, this.options);
|
||||
var sld = {
|
||||
namedLayers: {}
|
||||
namedLayers: options.namedLayersAsArray === true ? [] : {}
|
||||
};
|
||||
this.readChildNodes(data, sld);
|
||||
return sld;
|
||||
@@ -118,7 +125,11 @@ OpenLayers.Format.SLD.v1 = OpenLayers.Class(OpenLayers.Format.Filter.v1_0_0, {
|
||||
for(var i=0, len=layer.userStyles.length; i<len; ++i) {
|
||||
layer.userStyles[i].layerName = layer.name;
|
||||
}
|
||||
sld.namedLayers[layer.name] = layer;
|
||||
if(sld.namedLayers instanceof Array) {
|
||||
sld.namedLayers.push(layer);
|
||||
} else {
|
||||
sld.namedLayers[layer.name] = layer;
|
||||
}
|
||||
},
|
||||
"NamedStyle": function(node, layer) {
|
||||
layer.namedStyles.push(
|
||||
@@ -435,8 +446,15 @@ OpenLayers.Format.SLD.v1 = OpenLayers.Class(OpenLayers.Format.Filter.v1_0_0, {
|
||||
this.writeNode("Abstract", sld.description, root);
|
||||
}
|
||||
// add in named layers
|
||||
for(var name in sld.namedLayers) {
|
||||
this.writeNode("NamedLayer", sld.namedLayers[name], root);
|
||||
// allow namedLayers to be an array
|
||||
if(sld.namedLayers instanceof Array) {
|
||||
for(var i=0, len=sld.namedLayers.length; i<len; ++i) {
|
||||
this.writeNode("NamedLayer", sld.namedLayers[i], root);
|
||||
}
|
||||
} else {
|
||||
for(var name in sld.namedLayers) {
|
||||
this.writeNode("NamedLayer", sld.namedLayers[name], root);
|
||||
}
|
||||
}
|
||||
return root;
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user