Adding some serious enhancements to the WMC format. With this, OL map and layer objects can be created from WMC context objects and vice versa. Thanks for the great patch bbinet. r=me (closes #2251)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@9733 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
@@ -53,11 +53,11 @@ OpenLayers.Format.WMC.v1_1_0 = OpenLayers.Class(
|
||||
* Read a sld:MinScaleDenominator node.
|
||||
*
|
||||
* Parameters:
|
||||
* layerInfo - {Object} An object representing a layer.
|
||||
* layerContext - {Object} An object representing a layer.
|
||||
* node - {Element} An element node.
|
||||
*/
|
||||
read_sld_MinScaleDenominator: function(layerInfo, node) {
|
||||
layerInfo.options.maxScale = this.getChildValue(node);
|
||||
read_sld_MinScaleDenominator: function(layerContext, node) {
|
||||
layerContext.maxScale = this.getChildValue(node);
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -65,56 +65,54 @@ OpenLayers.Format.WMC.v1_1_0 = OpenLayers.Class(
|
||||
* Read a sld:MaxScaleDenominator node.
|
||||
*
|
||||
* Parameters:
|
||||
* layerInfo - {Object} An object representing a layer.
|
||||
* layerContext - {Object} An object representing a layer.
|
||||
* node - {Element} An element node.
|
||||
*/
|
||||
read_sld_MaxScaleDenominator: function(layerInfo, node) {
|
||||
layerInfo.options.minScale = this.getChildValue(node);
|
||||
read_sld_MaxScaleDenominator: function(layerContext, node) {
|
||||
layerContext.minScale = this.getChildValue(node);
|
||||
},
|
||||
|
||||
/**
|
||||
* Method: write_wmc_Layer
|
||||
* Create a Layer node given a layer object. This method adds elements
|
||||
* specific to version 1.1.0.
|
||||
* Create a Layer node given a layer context object. This method adds
|
||||
* elements specific to version 1.1.0.
|
||||
*
|
||||
* Parameters:
|
||||
* layer - {<OpenLayers.Layer.WMS>} Layer object.
|
||||
* context - {Object} A layer context object.}
|
||||
*
|
||||
* Returns:
|
||||
* {Element} A WMC Layer element node.
|
||||
*/
|
||||
write_wmc_Layer: function(layer) {
|
||||
write_wmc_Layer: function(context) {
|
||||
var node = OpenLayers.Format.WMC.v1.prototype.write_wmc_Layer.apply(
|
||||
this, [layer]
|
||||
this, [context]
|
||||
);
|
||||
|
||||
// min/max scale denominator elements go before the 4th element in v1
|
||||
if(layer.options.resolutions || layer.options.scales ||
|
||||
layer.options.minResolution || layer.options.maxScale) {
|
||||
if(context.maxScale) {
|
||||
var minSD = this.createElementNS(
|
||||
this.namespaces.sld, "sld:MinScaleDenominator"
|
||||
);
|
||||
minSD.appendChild(this.createTextNode(layer.maxScale.toPrecision(16)));
|
||||
minSD.appendChild(this.createTextNode(context.maxScale.toPrecision(16)));
|
||||
node.appendChild(minSD);
|
||||
}
|
||||
|
||||
if(layer.options.resolutions || layer.options.scales ||
|
||||
layer.options.maxResolution || layer.options.minScale) {
|
||||
if(context.minScale) {
|
||||
var maxSD = this.createElementNS(
|
||||
this.namespaces.sld, "sld:MaxScaleDenominator"
|
||||
);
|
||||
maxSD.appendChild(this.createTextNode(layer.minScale.toPrecision(16)));
|
||||
maxSD.appendChild(this.createTextNode(context.minScale.toPrecision(16)));
|
||||
node.appendChild(maxSD);
|
||||
}
|
||||
|
||||
// optional FormatList element
|
||||
node.appendChild(this.write_wmc_FormatList(layer));
|
||||
node.appendChild(this.write_wmc_FormatList(context));
|
||||
|
||||
// optional StyleList element
|
||||
node.appendChild(this.write_wmc_StyleList(layer));
|
||||
node.appendChild(this.write_wmc_StyleList(context));
|
||||
|
||||
// OpenLayers specific properties go in an Extension element
|
||||
node.appendChild(this.write_wmc_LayerExtension(layer));
|
||||
node.appendChild(this.write_wmc_LayerExtension(context));
|
||||
|
||||
return node;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user