More trip planner testing with colors
[busui.git] / labs / openlayers / lib / OpenLayers / Format / WMSCapabilities / v1_1.js
blob:a/labs/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_1.js -> blob:b/labs/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_1.js
  /* 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>
  */
  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"
   
  });