summaryrefslogtreecommitdiff
path: root/misc/openlayers/lib/OpenLayers/Format/WMC/v1_1_0.js
diff options
context:
space:
mode:
Diffstat (limited to 'misc/openlayers/lib/OpenLayers/Format/WMC/v1_1_0.js')
-rw-r--r--misc/openlayers/lib/OpenLayers/Format/WMC/v1_1_0.js149
1 files changed, 149 insertions, 0 deletions
diff --git a/misc/openlayers/lib/OpenLayers/Format/WMC/v1_1_0.js b/misc/openlayers/lib/OpenLayers/Format/WMC/v1_1_0.js
new file mode 100644
index 0000000..e5efc3e
--- /dev/null
+++ b/misc/openlayers/lib/OpenLayers/Format/WMC/v1_1_0.js
@@ -0,0 +1,149 @@
+/* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for
+ * full list of contributors). Published under the 2-clause BSD license.
+ * See license.txt in the OpenLayers distribution or repository for the
+ * full text of the license. */
+
+/**
+ * @requires OpenLayers/Format/WMC/v1.js
+ */
+
+/**
+ * Class: OpenLayers.Format.WMC.v1_1_0
+ * Read and write WMC version 1.1.0.
+ *
+ * Differences between 1.1.0 and 1.0.0:
+ * - 1.1.0 Layers have optional sld:MinScaleDenominator and
+ * sld:MaxScaleDenominator
+ *
+ * Inherits from:
+ * - <OpenLayers.Format.WMC.v1>
+ */
+OpenLayers.Format.WMC.v1_1_0 = OpenLayers.Class(
+ OpenLayers.Format.WMC.v1, {
+
+ /**
+ * Constant: VERSION
+ * {String} 1.1.0
+ */
+ VERSION: "1.1.0",
+
+ /**
+ * Property: schemaLocation
+ * {String} http://www.opengis.net/context
+ * http://schemas.opengis.net/context/1.1.0/context.xsd
+ */
+ schemaLocation: "http://www.opengis.net/context http://schemas.opengis.net/context/1.1.0/context.xsd",
+
+ /**
+ * Constructor: OpenLayers.Format.WMC.v1_1_0
+ * Instances of this class are not created directly. Use the
+ * <OpenLayers.Format.WMC> constructor instead.
+ *
+ * Parameters:
+ * options - {Object} An optional object whose properties will be set on
+ * this instance.
+ */
+ initialize: function(options) {
+ OpenLayers.Format.WMC.v1.prototype.initialize.apply(
+ this, [options]
+ );
+ },
+
+ /**
+ * Method: read_sld_MinScaleDenominator
+ * Read a sld:MinScaleDenominator node.
+ *
+ * Parameters:
+ * layerContext - {Object} An object representing a layer.
+ * node - {Element} An element node.
+ */
+ read_sld_MinScaleDenominator: function(layerContext, node) {
+ var minScaleDenominator = parseFloat(this.getChildValue(node));
+ if (minScaleDenominator > 0) {
+ layerContext.maxScale = minScaleDenominator;
+ }
+ },
+
+ /**
+ * Method: read_sld_MaxScaleDenominator
+ * Read a sld:MaxScaleDenominator node.
+ *
+ * Parameters:
+ * layerContext - {Object} An object representing a layer.
+ * node - {Element} An element node.
+ */
+ read_sld_MaxScaleDenominator: function(layerContext, node) {
+ layerContext.minScale = parseFloat(this.getChildValue(node));
+ },
+
+ /**
+ * Method: read_wmc_SRS
+ */
+ read_wmc_SRS: function(layerContext, node) {
+ if (! ("srs" in layerContext)) {
+ layerContext.srs = {};
+ }
+ layerContext.srs[this.getChildValue(node)] = true;
+ },
+
+ /**
+ * Method: write_wmc_Layer
+ * Create a Layer node given a layer context object. This method adds
+ * elements specific to version 1.1.0.
+ *
+ * Parameters:
+ * context - {Object} A layer context object.}
+ *
+ * Returns:
+ * {Element} A WMC Layer element node.
+ */
+ write_wmc_Layer: function(context) {
+ var node = OpenLayers.Format.WMC.v1.prototype.write_wmc_Layer.apply(
+ this, [context]
+ );
+
+ // min/max scale denominator elements go before the 4th element in v1
+ if(context.maxScale) {
+ var minSD = this.createElementNS(
+ this.namespaces.sld, "sld:MinScaleDenominator"
+ );
+ minSD.appendChild(this.createTextNode(context.maxScale.toPrecision(16)));
+ node.appendChild(minSD);
+ }
+
+ if(context.minScale) {
+ var maxSD = this.createElementNS(
+ this.namespaces.sld, "sld:MaxScaleDenominator"
+ );
+ maxSD.appendChild(this.createTextNode(context.minScale.toPrecision(16)));
+ node.appendChild(maxSD);
+ }
+
+ // optional SRS element(s)
+ if (context.srs) {
+ for(var name in context.srs) {
+ node.appendChild(this.createElementDefaultNS("SRS", name));
+ }
+ }
+
+ // optional FormatList element
+ node.appendChild(this.write_wmc_FormatList(context));
+
+ // optional StyleList element
+ node.appendChild(this.write_wmc_StyleList(context));
+
+ // optional DimensionList element
+ if (context.dimensions) {
+ node.appendChild(this.write_wmc_DimensionList(context));
+ }
+
+ // OpenLayers specific properties go in an Extension element
+ node.appendChild(this.write_wmc_LayerExtension(context));
+
+ return node;
+
+ },
+
+ CLASS_NAME: "OpenLayers.Format.WMC.v1_1_0"
+
+});