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) {
|
"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) {
|
if (symbolizer.externalGraphic || symbolizer.graphicName) {
|
||||||
this.writeNode("Graphic", symbolizer, node);
|
this.writeNode("Graphic", symbolizer, node);
|
||||||
}
|
}
|
||||||
if ("priority" in symbolizer) {
|
if ("priority" in symbolizer) {
|
||||||
this.writeNode("Priority", symbolizer.priority, node);
|
this.writeNode("Priority", symbolizer.priority, node);
|
||||||
}
|
}
|
||||||
var options = symbolizer.vendorOptions;
|
return this.addVendorOptions(node, symbolizer);
|
||||||
if (options) {
|
|
||||||
for (var i=0, ii=options.length; i<ii; ++i) {
|
|
||||||
this.writeNode("VendorOption", options[i], node);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return node;
|
|
||||||
},
|
},
|
||||||
"PointSymbolizer": function(symbolizer) {
|
"PointSymbolizer": function(symbolizer) {
|
||||||
var node = OpenLayers.Format.SLD.v1_0_0.prototype.writers["sld"]["PointSymbolizer"].apply(this, arguments);
|
var writers = OpenLayers.Format.SLD.v1_0_0.prototype.writers;
|
||||||
var options = symbolizer.vendorOptions;
|
var node = writers["sld"]["PointSymbolizer"].apply(this, arguments);
|
||||||
if (options) {
|
return this.addVendorOptions(node, symbolizer);
|
||||||
for (var i=0, ii=options.length; i<ii; ++i) {
|
|
||||||
this.writeNode("VendorOption", options[i], node);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return node;
|
|
||||||
},
|
},
|
||||||
"LineSymbolizer": function(symbolizer) {
|
"LineSymbolizer": function(symbolizer) {
|
||||||
var node = OpenLayers.Format.SLD.v1_0_0.prototype.writers["sld"]["LineSymbolizer"].apply(this, arguments);
|
var writers = OpenLayers.Format.SLD.v1_0_0.prototype.writers;
|
||||||
var options = symbolizer.vendorOptions;
|
var node = writers["sld"]["LineSymbolizer"].apply(this, arguments);
|
||||||
if (options) {
|
return this.addVendorOptions(node, symbolizer);
|
||||||
for (var i=0, ii=options.length; i<ii; ++i) {
|
|
||||||
this.writeNode("VendorOption", options[i], node);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return node;
|
|
||||||
},
|
},
|
||||||
"PolygonSymbolizer": function(symbolizer) {
|
"PolygonSymbolizer": function(symbolizer) {
|
||||||
var node = OpenLayers.Format.SLD.v1_0_0.prototype.writers["sld"]["PolygonSymbolizer"].apply(this, arguments);
|
var writers = OpenLayers.Format.SLD.v1_0_0.prototype.writers;
|
||||||
var options = symbolizer.vendorOptions;
|
var node = writers["sld"]["PolygonSymbolizer"].apply(this, arguments);
|
||||||
if (options) {
|
return this.addVendorOptions(node, symbolizer);
|
||||||
for (var i=0, ii=options.length; i<ii; ++i) {
|
|
||||||
this.writeNode("VendorOption", options[i], node);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return node;
|
|
||||||
}
|
}
|
||||||
}, OpenLayers.Format.SLD.v1_0_0.prototype.writers["sld"]),
|
}, OpenLayers.Format.SLD.v1_0_0.prototype.writers["sld"]),
|
||||||
"ogc": OpenLayers.Format.SLD.v1_0_0.prototype.writers["ogc"]
|
"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"
|
CLASS_NAME: "OpenLayers.Format.SLD.v1_0_0_GeoServer"
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -72,6 +72,18 @@
|
|||||||
<Fill>
|
<Fill>
|
||||||
<CssParameter name="fill">#000000</CssParameter>
|
<CssParameter name="fill">#000000</CssParameter>
|
||||||
</Fill>
|
</Fill>
|
||||||
|
<Graphic>
|
||||||
|
<Mark>
|
||||||
|
<WellKnownName>square</WellKnownName>
|
||||||
|
<Fill>
|
||||||
|
<CssParameter name="fill">#59BF34</CssParameter>
|
||||||
|
</Fill>
|
||||||
|
<Stroke>
|
||||||
|
<CssParameter name="stroke">#2D6917</CssParameter>
|
||||||
|
</Stroke>
|
||||||
|
</Mark>
|
||||||
|
<Size>24</Size>
|
||||||
|
</Graphic>
|
||||||
<Priority>
|
<Priority>
|
||||||
<ogc:PropertyName>population</ogc:PropertyName>
|
<ogc:PropertyName>population</ogc:PropertyName>
|
||||||
</Priority>
|
</Priority>
|
||||||
|
|||||||
Reference in New Issue
Block a user