a bit of restructuring, also making sure that a Graphic in a TextSymbolizer can be read and written (this is a GeoServer extension to produce e.g. highway shields)
This commit is contained in:
@@ -88,55 +88,56 @@ OpenLayers.Format.SLD.v1_0_0_GeoServer = OpenLayers.Class(
|
||||
});
|
||||
},
|
||||
"TextSymbolizer": function(symbolizer) {
|
||||
var node = OpenLayers.Format.SLD.v1_0_0.prototype.writers["sld"]["TextSymbolizer"].apply(this, arguments);
|
||||
var writers = OpenLayers.Format.SLD.v1_0_0.prototype.writers;
|
||||
var node = writers["sld"]["TextSymbolizer"].apply(this, arguments);
|
||||
if (symbolizer.externalGraphic || symbolizer.graphicName) {
|
||||
this.writeNode("Graphic", symbolizer, node);
|
||||
}
|
||||
if ("priority" in symbolizer) {
|
||||
this.writeNode("Priority", symbolizer.priority, node);
|
||||
}
|
||||
var options = symbolizer.vendorOptions;
|
||||
if (options) {
|
||||
for (var i=0, ii=options.length; i<ii; ++i) {
|
||||
this.writeNode("VendorOption", options[i], node);
|
||||
}
|
||||
}
|
||||
return node;
|
||||
return this.addVendorOptions(node, symbolizer);
|
||||
},
|
||||
"PointSymbolizer": function(symbolizer) {
|
||||
var node = OpenLayers.Format.SLD.v1_0_0.prototype.writers["sld"]["PointSymbolizer"].apply(this, arguments);
|
||||
var options = symbolizer.vendorOptions;
|
||||
if (options) {
|
||||
for (var i=0, ii=options.length; i<ii; ++i) {
|
||||
this.writeNode("VendorOption", options[i], node);
|
||||
}
|
||||
}
|
||||
return node;
|
||||
var writers = OpenLayers.Format.SLD.v1_0_0.prototype.writers;
|
||||
var node = writers["sld"]["PointSymbolizer"].apply(this, arguments);
|
||||
return this.addVendorOptions(node, symbolizer);
|
||||
},
|
||||
"LineSymbolizer": function(symbolizer) {
|
||||
var node = OpenLayers.Format.SLD.v1_0_0.prototype.writers["sld"]["LineSymbolizer"].apply(this, arguments);
|
||||
var options = symbolizer.vendorOptions;
|
||||
if (options) {
|
||||
for (var i=0, ii=options.length; i<ii; ++i) {
|
||||
this.writeNode("VendorOption", options[i], node);
|
||||
}
|
||||
}
|
||||
return node;
|
||||
var writers = OpenLayers.Format.SLD.v1_0_0.prototype.writers;
|
||||
var node = writers["sld"]["LineSymbolizer"].apply(this, arguments);
|
||||
return this.addVendorOptions(node, symbolizer);
|
||||
},
|
||||
"PolygonSymbolizer": function(symbolizer) {
|
||||
var node = OpenLayers.Format.SLD.v1_0_0.prototype.writers["sld"]["PolygonSymbolizer"].apply(this, arguments);
|
||||
var options = symbolizer.vendorOptions;
|
||||
if (options) {
|
||||
for (var i=0, ii=options.length; i<ii; ++i) {
|
||||
this.writeNode("VendorOption", options[i], node);
|
||||
}
|
||||
}
|
||||
return node;
|
||||
var writers = OpenLayers.Format.SLD.v1_0_0.prototype.writers;
|
||||
var node = writers["sld"]["PolygonSymbolizer"].apply(this, arguments);
|
||||
return this.addVendorOptions(node, symbolizer);
|
||||
}
|
||||
}, OpenLayers.Format.SLD.v1_0_0.prototype.writers["sld"]),
|
||||
"ogc": OpenLayers.Format.SLD.v1_0_0.prototype.writers["ogc"]
|
||||
},
|
||||
|
||||
/**
|
||||
* Method: addVendorOptions
|
||||
* Add in the VendorOption tags and return the node again.
|
||||
*
|
||||
* Parameters:
|
||||
* node - {DOMElement} A DOM node.
|
||||
* symbolizer - {Object}
|
||||
*
|
||||
* Returns:
|
||||
* {DOMElement} A DOM node.
|
||||
*/
|
||||
addVendorOptions: function(node, symbolizer) {
|
||||
var options = symbolizer.vendorOptions;
|
||||
if (options) {
|
||||
for (var i=0, ii=options.length; i<ii; ++i) {
|
||||
this.writeNode("VendorOption", options[i], node);
|
||||
}
|
||||
}
|
||||
return node;
|
||||
},
|
||||
|
||||
CLASS_NAME: "OpenLayers.Format.SLD.v1_0_0_GeoServer"
|
||||
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user