1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
|
/* 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/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"];
if (min != 0) {
obj.maxScale = parseFloat(
((min / rad2) * ipm *
OpenLayers.DOTS_PER_INCH).toPrecision(13)
);
}
if (max != Number.POSITIVE_INFINITY) {
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"
});
|