/* Copyright (c) 2006-2010 by OpenLayers Contributors (see authors.txt for * full list of contributors). Published under the Clear BSD license. * See http://svn.openlayers.org/trunk/openlayers/license.txt for the * full text of the license. */ /** * @requires OpenLayers/Format/WMSCapabilities/v1.js */ /** * Class: OpenLayers.Format.WMSCapabilities.v1_1 * Abstract class not to be instantiated directly. * * Inherits from: * - */ OpenLayers.Format.WMSCapabilities.v1_1 = OpenLayers.Class( OpenLayers.Format.WMSCapabilities.v1, { /** * Property: readers * Contains public functions, grouped by namespace prefix, that will * be applied when a namespaced node is found matching the function * name. The function will be applied in the scope of this parser * with two arguments: the node being read and a context object passed * from the parent. */ readers: { "wms": OpenLayers.Util.applyDefaults({ "WMT_MS_Capabilities": function(node, obj) { this.readChildNodes(node, obj); }, "Keyword": function(node, obj) { if (obj.keywords) { obj.keywords.push(this.getChildValue(node)); } }, "DescribeLayer": function(node, obj) { obj.describelayer = {formats: []}; this.readChildNodes(node, obj.describelayer); }, "GetLegendGraphic": function(node, obj) { obj.getlegendgraphic = {formats: []}; this.readChildNodes(node, obj.getlegendgraphic); }, "GetStyles": function(node, obj) { obj.getstyles = {formats: []}; this.readChildNodes(node, obj.getstyles); }, "PutStyles": function(node, obj) { obj.putstyles = {formats: []}; this.readChildNodes(node, obj.putstyles); }, "UserDefinedSymbolization": function(node, obj) { var userSymbols = { supportSLD: parseInt(node.getAttribute("SupportSLD")) == 1, userLayer: parseInt(node.getAttribute("UserLayer")) == 1, userStyle: parseInt(node.getAttribute("UserStyle")) == 1, remoteWFS: parseInt(node.getAttribute("RemoteWFS")) == 1 }; obj.userSymbols = userSymbols; }, "LatLonBoundingBox": function(node, obj) { obj.llbbox = [ parseFloat(node.getAttribute("minx")), parseFloat(node.getAttribute("miny")), parseFloat(node.getAttribute("maxx")), parseFloat(node.getAttribute("maxy")) ]; }, "BoundingBox": function(node, obj) { var bbox = OpenLayers.Format.WMSCapabilities.v1.prototype.readers["wms"].BoundingBox.apply(this, [node, obj]); bbox.srs = node.getAttribute("SRS"); obj.bbox[bbox.srs] = bbox; }, "ScaleHint": function(node, obj) { var min = node.getAttribute("min"); var max = node.getAttribute("max"); var rad2 = Math.pow(2, 0.5); var ipm = OpenLayers.INCHES_PER_UNIT["m"]; obj.maxScale = parseFloat( ((min / rad2) * ipm * OpenLayers.DOTS_PER_INCH).toPrecision(13) ); obj.minScale = parseFloat( ((max / rad2) * ipm * OpenLayers.DOTS_PER_INCH).toPrecision(13) ); }, "Dimension": function(node, obj) { var name = node.getAttribute("name").toLowerCase(); var dim = { name: name, units: node.getAttribute("units"), unitsymbol: node.getAttribute("unitSymbol") }; obj.dimensions[dim.name] = dim; }, "Extent": function(node, obj) { var name = node.getAttribute("name").toLowerCase(); if (name in obj["dimensions"]) { var extent = obj.dimensions[name]; extent.nearestVal = node.getAttribute("nearestValue") === "1"; extent.multipleVal = node.getAttribute("multipleValues") === "1"; extent.current = node.getAttribute("current") === "1"; extent["default"] = node.getAttribute("default") || ""; var values = this.getChildValue(node); extent.values = values.split(","); } } }, OpenLayers.Format.WMSCapabilities.v1.prototype.readers["wms"]) }, CLASS_NAME: "OpenLayers.Format.WMSCapabilities.v1_1" });