Remove old WMS GetCapabilities parser
This commit is contained in:
@@ -1,2 +0,0 @@
|
|||||||
@exportSymbol ol.parser.ogc.WMSCapabilities
|
|
||||||
@exportProperty ol.parser.ogc.WMSCapabilities.prototype.read
|
|
||||||
@@ -1,69 +0,0 @@
|
|||||||
goog.provide('ol.parser.ogc.WMSCapabilities');
|
|
||||||
goog.require('ol.parser.ogc.Versioned');
|
|
||||||
goog.require('ol.parser.ogc.WMSCapabilities_v1_0_0');
|
|
||||||
goog.require('ol.parser.ogc.WMSCapabilities_v1_1_0');
|
|
||||||
goog.require('ol.parser.ogc.WMSCapabilities_v1_1_1');
|
|
||||||
goog.require('ol.parser.ogc.WMSCapabilities_v1_1_1_WMSC');
|
|
||||||
goog.require('ol.parser.ogc.WMSCapabilities_v1_3_0');
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @define {boolean} Whether to enable WMS Capabilities version 1.0.0.
|
|
||||||
*/
|
|
||||||
ol.ENABLE_WMSCAPS_1_0_0 = false;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @define {boolean} Whether to enable WMS Capabilities version 1.1.0.
|
|
||||||
*/
|
|
||||||
ol.ENABLE_WMSCAPS_1_1_0 = true;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @define {boolean} Whether to enable WMS Capabilities version 1.1.1.
|
|
||||||
*/
|
|
||||||
ol.ENABLE_WMSCAPS_1_1_1 = true;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @define {boolean} Whether to enable WMS Capabilities version 1.3.0.
|
|
||||||
*/
|
|
||||||
ol.ENABLE_WMSCAPS_1_3_0 = true;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @define {boolean} Whether to enable WMS Capabilities version 1.1.1.
|
|
||||||
* WMSC profile.
|
|
||||||
*/
|
|
||||||
ol.ENABLE_WMSCAPS_1_1_1_WMSC = true;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @constructor
|
|
||||||
* @param {Object=} opt_options Options which will be set on this object.
|
|
||||||
* @extends {ol.parser.ogc.Versioned}
|
|
||||||
* @todo stability experimental
|
|
||||||
*/
|
|
||||||
ol.parser.ogc.WMSCapabilities = function(opt_options) {
|
|
||||||
opt_options = opt_options || {};
|
|
||||||
opt_options['defaultVersion'] = '1.1.1';
|
|
||||||
this.parsers = {};
|
|
||||||
if (ol.ENABLE_WMSCAPS_1_0_0) {
|
|
||||||
this.parsers['v1_0_0'] = ol.parser.ogc.WMSCapabilities_v1_0_0;
|
|
||||||
}
|
|
||||||
if (ol.ENABLE_WMSCAPS_1_1_0) {
|
|
||||||
this.parsers['v1_1_0'] = ol.parser.ogc.WMSCapabilities_v1_1_0;
|
|
||||||
}
|
|
||||||
if (ol.ENABLE_WMSCAPS_1_1_1) {
|
|
||||||
this.parsers['v1_1_1'] = ol.parser.ogc.WMSCapabilities_v1_1_1;
|
|
||||||
}
|
|
||||||
if (ol.ENABLE_WMSCAPS_1_1_1_WMSC) {
|
|
||||||
this.parsers['v1_1_1_WMSC'] = ol.parser.ogc.WMSCapabilities_v1_1_1_WMSC;
|
|
||||||
}
|
|
||||||
if (ol.ENABLE_WMSCAPS_1_3_0) {
|
|
||||||
this.parsers['v1_3_0'] = ol.parser.ogc.WMSCapabilities_v1_3_0;
|
|
||||||
}
|
|
||||||
goog.base(this, opt_options);
|
|
||||||
};
|
|
||||||
goog.inherits(ol.parser.ogc.WMSCapabilities, ol.parser.ogc.Versioned);
|
|
||||||
@@ -1,317 +0,0 @@
|
|||||||
goog.provide('ol.parser.ogc.WMSCapabilities_v1');
|
|
||||||
goog.require('goog.dom.xml');
|
|
||||||
goog.require('goog.object');
|
|
||||||
goog.require('ol.parser.XML');
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Read [WMS](http://www.opengeospatial.org/standards/wms) capabilities
|
|
||||||
*
|
|
||||||
* @constructor
|
|
||||||
* @extends {ol.parser.XML}
|
|
||||||
*/
|
|
||||||
ol.parser.ogc.WMSCapabilities_v1 = function() {
|
|
||||||
this.defaultNamespaceURI = 'http://www.opengis.net/wms';
|
|
||||||
this.errorProperty = 'service';
|
|
||||||
this.readers = {
|
|
||||||
'http://www.opengis.net/wms': {
|
|
||||||
'Service': function(node, obj) {
|
|
||||||
obj['service'] = {};
|
|
||||||
this.readChildNodes(node, obj['service']);
|
|
||||||
},
|
|
||||||
'Name': function(node, obj) {
|
|
||||||
obj['name'] = this.getChildValue(node);
|
|
||||||
},
|
|
||||||
'Title': function(node, obj) {
|
|
||||||
obj['title'] = this.getChildValue(node);
|
|
||||||
},
|
|
||||||
'Abstract': function(node, obj) {
|
|
||||||
obj['abstract'] = this.getChildValue(node);
|
|
||||||
},
|
|
||||||
'BoundingBox': function(node, obj) {
|
|
||||||
var bbox = {};
|
|
||||||
bbox['bbox'] = [
|
|
||||||
parseFloat(node.getAttribute('minx')),
|
|
||||||
parseFloat(node.getAttribute('miny')),
|
|
||||||
parseFloat(node.getAttribute('maxx')),
|
|
||||||
parseFloat(node.getAttribute('maxy'))
|
|
||||||
];
|
|
||||||
var res = {
|
|
||||||
x: parseFloat(node.getAttribute('resx')),
|
|
||||||
y: parseFloat(node.getAttribute('resy'))
|
|
||||||
};
|
|
||||||
if (! (isNaN(res.x) && isNaN(res.y))) {
|
|
||||||
bbox['res'] = res;
|
|
||||||
}
|
|
||||||
// return the bbox so that descendant classes can set the
|
|
||||||
// CRS and SRS and add it to the obj
|
|
||||||
return bbox;
|
|
||||||
},
|
|
||||||
'OnlineResource': function(node, obj) {
|
|
||||||
obj['href'] = this.getAttributeNS(node, 'http://www.w3.org/1999/xlink',
|
|
||||||
'href');
|
|
||||||
},
|
|
||||||
'ContactInformation': function(node, obj) {
|
|
||||||
obj['contactInformation'] = {};
|
|
||||||
this.readChildNodes(node, obj['contactInformation']);
|
|
||||||
},
|
|
||||||
'ContactPersonPrimary': function(node, obj) {
|
|
||||||
obj['personPrimary'] = {};
|
|
||||||
this.readChildNodes(node, obj['personPrimary']);
|
|
||||||
},
|
|
||||||
'ContactPerson': function(node, obj) {
|
|
||||||
obj['person'] = this.getChildValue(node);
|
|
||||||
},
|
|
||||||
'ContactOrganization': function(node, obj) {
|
|
||||||
obj['organization'] = this.getChildValue(node);
|
|
||||||
},
|
|
||||||
'ContactPosition': function(node, obj) {
|
|
||||||
obj['position'] = this.getChildValue(node);
|
|
||||||
},
|
|
||||||
'ContactAddress': function(node, obj) {
|
|
||||||
obj['contactAddress'] = {};
|
|
||||||
this.readChildNodes(node, obj['contactAddress']);
|
|
||||||
},
|
|
||||||
'AddressType': function(node, obj) {
|
|
||||||
obj['type'] = this.getChildValue(node);
|
|
||||||
},
|
|
||||||
'Address': function(node, obj) {
|
|
||||||
obj['address'] = this.getChildValue(node);
|
|
||||||
},
|
|
||||||
'City': function(node, obj) {
|
|
||||||
obj['city'] = this.getChildValue(node);
|
|
||||||
},
|
|
||||||
'StateOrProvince': function(node, obj) {
|
|
||||||
obj['stateOrProvince'] = this.getChildValue(node);
|
|
||||||
},
|
|
||||||
'PostCode': function(node, obj) {
|
|
||||||
obj['postcode'] = this.getChildValue(node);
|
|
||||||
},
|
|
||||||
'Country': function(node, obj) {
|
|
||||||
obj['country'] = this.getChildValue(node);
|
|
||||||
},
|
|
||||||
'ContactVoiceTelephone': function(node, obj) {
|
|
||||||
obj['phone'] = this.getChildValue(node);
|
|
||||||
},
|
|
||||||
'ContactFacsimileTelephone': function(node, obj) {
|
|
||||||
obj['fax'] = this.getChildValue(node);
|
|
||||||
},
|
|
||||||
'ContactElectronicMailAddress': function(node, obj) {
|
|
||||||
obj['email'] = this.getChildValue(node);
|
|
||||||
},
|
|
||||||
'Fees': function(node, obj) {
|
|
||||||
var fees = this.getChildValue(node);
|
|
||||||
if (fees && fees.toLowerCase() != 'none') {
|
|
||||||
obj['fees'] = fees;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
'AccessConstraints': function(node, obj) {
|
|
||||||
var constraints = this.getChildValue(node);
|
|
||||||
if (constraints && constraints.toLowerCase() != 'none') {
|
|
||||||
obj['accessConstraints'] = constraints;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
'Capability': function(node, obj) {
|
|
||||||
obj['capability'] = {};
|
|
||||||
obj['capability']['nestedLayers'] = [];
|
|
||||||
obj['capability']['layers'] = [];
|
|
||||||
this.readChildNodes(node, obj['capability']);
|
|
||||||
},
|
|
||||||
'Request': function(node, obj) {
|
|
||||||
obj['request'] = {};
|
|
||||||
this.readChildNodes(node, obj['request']);
|
|
||||||
},
|
|
||||||
'GetCapabilities': function(node, obj) {
|
|
||||||
obj['getcapabilities'] = {};
|
|
||||||
obj['getcapabilities']['formats'] = [];
|
|
||||||
this.readChildNodes(node, obj['getcapabilities']);
|
|
||||||
},
|
|
||||||
'Format': function(node, obj) {
|
|
||||||
if (goog.isArray(obj['formats'])) {
|
|
||||||
obj['formats'].push(this.getChildValue(node));
|
|
||||||
} else {
|
|
||||||
obj['format'] = this.getChildValue(node);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
'DCPType': function(node, obj) {
|
|
||||||
this.readChildNodes(node, obj);
|
|
||||||
},
|
|
||||||
'HTTP': function(node, obj) {
|
|
||||||
this.readChildNodes(node, obj);
|
|
||||||
},
|
|
||||||
'Get': function(node, obj) {
|
|
||||||
obj['get'] = {};
|
|
||||||
this.readChildNodes(node, obj['get']);
|
|
||||||
},
|
|
||||||
'Post': function(node, obj) {
|
|
||||||
obj['post'] = {};
|
|
||||||
this.readChildNodes(node, obj['post']);
|
|
||||||
},
|
|
||||||
'GetMap': function(node, obj) {
|
|
||||||
obj['getmap'] = {};
|
|
||||||
obj['getmap']['formats'] = [];
|
|
||||||
this.readChildNodes(node, obj['getmap']);
|
|
||||||
},
|
|
||||||
'GetFeatureInfo': function(node, obj) {
|
|
||||||
obj['getfeatureinfo'] = {};
|
|
||||||
obj['getfeatureinfo']['formats'] = [];
|
|
||||||
this.readChildNodes(node, obj['getfeatureinfo']);
|
|
||||||
},
|
|
||||||
'Exception': function(node, obj) {
|
|
||||||
obj['exception'] = {};
|
|
||||||
obj['exception']['formats'] = [];
|
|
||||||
this.readChildNodes(node, obj['exception']);
|
|
||||||
},
|
|
||||||
'Layer': function(node, obj) {
|
|
||||||
var parentLayer, capability;
|
|
||||||
if (obj['capability']) {
|
|
||||||
capability = obj['capability'];
|
|
||||||
parentLayer = obj;
|
|
||||||
} else {
|
|
||||||
capability = obj;
|
|
||||||
}
|
|
||||||
var attrNode = node.getAttributeNode('queryable');
|
|
||||||
var queryable = (attrNode && attrNode.specified) ?
|
|
||||||
node.getAttribute('queryable') : null;
|
|
||||||
attrNode = node.getAttributeNode('cascaded');
|
|
||||||
var cascaded = (attrNode && attrNode.specified) ?
|
|
||||||
node.getAttribute('cascaded') : null;
|
|
||||||
attrNode = node.getAttributeNode('opaque');
|
|
||||||
var opaque = (attrNode && attrNode.specified) ?
|
|
||||||
node.getAttribute('opaque') : null;
|
|
||||||
var noSubsets = node.getAttribute('noSubsets');
|
|
||||||
var fixedWidth = node.getAttribute('fixedWidth');
|
|
||||||
var fixedHeight = node.getAttribute('fixedHeight');
|
|
||||||
var parent = parentLayer || {};
|
|
||||||
var layer = {
|
|
||||||
'nestedLayers': [],
|
|
||||||
'styles': parentLayer ? [].concat(parentLayer['styles']) : [],
|
|
||||||
'srs': {},
|
|
||||||
'metadataURLs': [],
|
|
||||||
'bbox': {},
|
|
||||||
'llbbox': parent['llbbox'],
|
|
||||||
'dimensions': {},
|
|
||||||
'authorityURLs': {},
|
|
||||||
'identifiers': {},
|
|
||||||
'keywords': [],
|
|
||||||
'queryable': (queryable && queryable !== '') ?
|
|
||||||
(queryable === '1' || queryable === 'true') :
|
|
||||||
(parent['queryable'] || false),
|
|
||||||
'cascaded': (cascaded !== null) ? parseInt(cascaded, 10) :
|
|
||||||
(parent['cascaded'] || 0),
|
|
||||||
'opaque': opaque ?
|
|
||||||
(opaque === '1' || opaque === 'true') :
|
|
||||||
(parent['opaque'] || false),
|
|
||||||
'noSubsets': (noSubsets !== null) ?
|
|
||||||
(noSubsets === '1' || noSubsets === 'true') :
|
|
||||||
(parent['noSubsets'] || false),
|
|
||||||
'fixedWidth': (fixedWidth !== null) ?
|
|
||||||
parseInt(fixedWidth, 10) : (parent['fixedWidth'] || 0),
|
|
||||||
'fixedHeight': (fixedHeight !== null) ?
|
|
||||||
parseInt(fixedHeight, 10) : (parent['fixedHeight'] || 0),
|
|
||||||
'minScale': parent['minScale'],
|
|
||||||
'maxScale': parent['maxScale'],
|
|
||||||
'attribution': parent['attribution']
|
|
||||||
};
|
|
||||||
if (parentLayer) {
|
|
||||||
goog.object.extend(layer['srs'], parent['srs']);
|
|
||||||
goog.object.extend(layer['bbox'], parent['bbox']);
|
|
||||||
goog.object.extend(layer['dimensions'], parent['dimensions']);
|
|
||||||
goog.object.extend(layer['authorityURLs'], parent['authorityURLs']);
|
|
||||||
}
|
|
||||||
obj['nestedLayers'].push(layer);
|
|
||||||
layer['capability'] = capability;
|
|
||||||
this.readChildNodes(node, layer);
|
|
||||||
delete layer['capability'];
|
|
||||||
if (layer['name']) {
|
|
||||||
var parts = layer['name'].split(':'),
|
|
||||||
request = capability['request'],
|
|
||||||
gfi = request['getfeatureinfo'];
|
|
||||||
if (parts.length > 0) {
|
|
||||||
layer['prefix'] = parts[0];
|
|
||||||
}
|
|
||||||
capability['layers'].push(layer);
|
|
||||||
if (!goog.isDef(layer['formats'])) {
|
|
||||||
layer['formats'] = request['getmap']['formats'];
|
|
||||||
}
|
|
||||||
if (!goog.isDef(layer['infoFormats']) && gfi) {
|
|
||||||
layer['infoFormats'] = gfi['formats'];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
'Attribution': function(node, obj) {
|
|
||||||
obj['attribution'] = {};
|
|
||||||
this.readChildNodes(node, obj['attribution']);
|
|
||||||
},
|
|
||||||
'LogoURL': function(node, obj) {
|
|
||||||
obj['logo'] = {
|
|
||||||
'width': node.getAttribute('width'),
|
|
||||||
'height': node.getAttribute('height')
|
|
||||||
};
|
|
||||||
this.readChildNodes(node, obj['logo']);
|
|
||||||
},
|
|
||||||
'Style': function(node, obj) {
|
|
||||||
var style = {};
|
|
||||||
obj['styles'].push(style);
|
|
||||||
this.readChildNodes(node, style);
|
|
||||||
},
|
|
||||||
'LegendURL': function(node, obj) {
|
|
||||||
var legend = {
|
|
||||||
'width': node.getAttribute('width'),
|
|
||||||
'height': node.getAttribute('height')
|
|
||||||
};
|
|
||||||
obj['legend'] = legend;
|
|
||||||
this.readChildNodes(node, legend);
|
|
||||||
},
|
|
||||||
'MetadataURL': function(node, obj) {
|
|
||||||
var metadataURL = {'type': node.getAttribute('type')};
|
|
||||||
obj['metadataURLs'].push(metadataURL);
|
|
||||||
this.readChildNodes(node, metadataURL);
|
|
||||||
},
|
|
||||||
'DataURL': function(node, obj) {
|
|
||||||
obj['dataURL'] = {};
|
|
||||||
this.readChildNodes(node, obj['dataURL']);
|
|
||||||
},
|
|
||||||
'FeatureListURL': function(node, obj) {
|
|
||||||
obj['featureListURL'] = {};
|
|
||||||
this.readChildNodes(node, obj['featureListURL']);
|
|
||||||
},
|
|
||||||
'AuthorityURL': function(node, obj) {
|
|
||||||
var name = node.getAttribute('name');
|
|
||||||
var authority = {};
|
|
||||||
this.readChildNodes(node, authority);
|
|
||||||
obj['authorityURLs'][name] = authority['href'];
|
|
||||||
},
|
|
||||||
'Identifier': function(node, obj) {
|
|
||||||
var authority = node.getAttribute('authority');
|
|
||||||
obj['identifiers'][authority] = this.getChildValue(node);
|
|
||||||
},
|
|
||||||
'KeywordList': function(node, obj) {
|
|
||||||
this.readChildNodes(node, obj);
|
|
||||||
},
|
|
||||||
'SRS': function(node, obj) {
|
|
||||||
obj['srs'][this.getChildValue(node)] = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
goog.base(this);
|
|
||||||
};
|
|
||||||
goog.inherits(ol.parser.ogc.WMSCapabilities_v1, ol.parser.XML);
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param {string|Document|Element} data Data to read.
|
|
||||||
* @return {Object} An object representing the document.
|
|
||||||
*/
|
|
||||||
ol.parser.ogc.WMSCapabilities_v1.prototype.read = function(data) {
|
|
||||||
if (goog.isString(data)) {
|
|
||||||
data = goog.dom.xml.loadXml(data);
|
|
||||||
}
|
|
||||||
if (data && data.nodeType == 9) {
|
|
||||||
data = data.documentElement;
|
|
||||||
}
|
|
||||||
var obj = {};
|
|
||||||
this.readNode(data, obj);
|
|
||||||
return obj;
|
|
||||||
};
|
|
||||||
@@ -1,66 +0,0 @@
|
|||||||
goog.provide('ol.parser.ogc.WMSCapabilities_v1_0_0');
|
|
||||||
|
|
||||||
goog.require('goog.object');
|
|
||||||
goog.require('goog.string');
|
|
||||||
goog.require('ol.parser.ogc.WMSCapabilities_v1_1_0');
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Read [WMS](http://www.opengeospatial.org/standards/wms) capabilities
|
|
||||||
* version 1.0.0
|
|
||||||
*
|
|
||||||
* @constructor
|
|
||||||
* @extends {ol.parser.ogc.WMSCapabilities_v1_1_0}
|
|
||||||
*/
|
|
||||||
ol.parser.ogc.WMSCapabilities_v1_0_0 = function() {
|
|
||||||
goog.base(this);
|
|
||||||
this.version = '1.0.0';
|
|
||||||
goog.object.extend(this.readers['http://www.opengis.net/wms'], {
|
|
||||||
'Format': function(node, obj) {
|
|
||||||
for (var i = 0, ii = node.childNodes.length; i < ii; i++) {
|
|
||||||
var child = node.childNodes[i];
|
|
||||||
var local = child.localName || child.nodeName.split(':').pop();
|
|
||||||
if (goog.isArray(obj['formats'])) {
|
|
||||||
obj['formats'].push(local);
|
|
||||||
} else {
|
|
||||||
obj['format'] = local;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
'Keywords': function(node, obj) {
|
|
||||||
if (!goog.isDef(obj['keywords'])) {
|
|
||||||
obj['keywords'] = [];
|
|
||||||
}
|
|
||||||
var keywords = this.getChildValue(node).split(/ +/);
|
|
||||||
for (var i = 0, ii = keywords.length; i < ii; ++i) {
|
|
||||||
if (!goog.string.isEmpty(keywords[i])) {
|
|
||||||
obj['keywords'].push({'value': keywords[i]});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
'OnlineResource': function(node, obj) {
|
|
||||||
obj['href'] = this.getChildValue(node);
|
|
||||||
},
|
|
||||||
'Get': function(node, obj) {
|
|
||||||
obj['get'] = {'href': node.getAttribute('onlineResource')};
|
|
||||||
},
|
|
||||||
'Post': function(node, obj) {
|
|
||||||
obj['post'] = {'href': node.getAttribute('onlineResource')};
|
|
||||||
},
|
|
||||||
'Map': function(node, obj) {
|
|
||||||
var reader = this.readers[this.defaultNamespaceURI]['GetMap'];
|
|
||||||
reader.apply(this, arguments);
|
|
||||||
},
|
|
||||||
'Capabilities': function(node, obj) {
|
|
||||||
var reader = this.readers[this.defaultNamespaceURI]['GetCapabilities'];
|
|
||||||
reader.apply(this, arguments);
|
|
||||||
},
|
|
||||||
'FeatureInfo': function(node, obj) {
|
|
||||||
var reader = this.readers[this.defaultNamespaceURI]['GetFeatureInfo'];
|
|
||||||
reader.apply(this, arguments);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
};
|
|
||||||
goog.inherits(ol.parser.ogc.WMSCapabilities_v1_0_0,
|
|
||||||
ol.parser.ogc.WMSCapabilities_v1_1_0);
|
|
||||||
@@ -1,101 +0,0 @@
|
|||||||
goog.provide('ol.parser.ogc.WMSCapabilities_v1_1');
|
|
||||||
|
|
||||||
goog.require('goog.object');
|
|
||||||
goog.require('ol.parser.ogc.WMSCapabilities_v1');
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @constructor
|
|
||||||
* @extends {ol.parser.ogc.WMSCapabilities_v1}
|
|
||||||
*/
|
|
||||||
ol.parser.ogc.WMSCapabilities_v1_1 = function() {
|
|
||||||
goog.base(this);
|
|
||||||
var bboxreader = this.readers['http://www.opengis.net/wms']['BoundingBox'];
|
|
||||||
goog.object.extend(this.readers['http://www.opengis.net/wms'], {
|
|
||||||
'WMT_MS_Capabilities': function(node, obj) {
|
|
||||||
this.readChildNodes(node, obj);
|
|
||||||
},
|
|
||||||
'Keyword': function(node, obj) {
|
|
||||||
if (obj['keywords']) {
|
|
||||||
obj['keywords'].push({'value': 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'), 10) == 1,
|
|
||||||
'userLayer': parseInt(node.getAttribute('UserLayer'), 10) == 1,
|
|
||||||
'userStyle': parseInt(node.getAttribute('UserStyle'), 10) == 1,
|
|
||||||
'remoteWFS': parseInt(node.getAttribute('RemoteWFS'), 10) == 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 = bboxreader.apply(this, arguments);
|
|
||||||
bbox['srs'] = node.getAttribute('SRS');
|
|
||||||
obj['bbox'][bbox['srs']] = bbox;
|
|
||||||
},
|
|
||||||
'ScaleHint': function(node, obj) {
|
|
||||||
var min = parseFloat(node.getAttribute('min'));
|
|
||||||
var max = parseFloat(node.getAttribute('max'));
|
|
||||||
var rad2 = Math.pow(2, 0.5);
|
|
||||||
var dpi = (25.4 / 0.28);
|
|
||||||
var ipm = 39.37;
|
|
||||||
if (min !== 0) {
|
|
||||||
obj['maxScale'] = parseFloat((min / rad2) * ipm * dpi);
|
|
||||||
}
|
|
||||||
if (max != Infinity) {
|
|
||||||
obj['minScale'] = parseFloat((max / rad2) * ipm * dpi);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
'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(',');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
};
|
|
||||||
goog.inherits(ol.parser.ogc.WMSCapabilities_v1_1,
|
|
||||||
ol.parser.ogc.WMSCapabilities_v1);
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
goog.provide('ol.parser.ogc.WMSCapabilities_v1_1_0');
|
|
||||||
|
|
||||||
goog.require('goog.object');
|
|
||||||
goog.require('ol.parser.ogc.WMSCapabilities_v1_1');
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Read [WMS](http://www.opengeospatial.org/standards/wms) capabilities
|
|
||||||
* version 1.1.0
|
|
||||||
*
|
|
||||||
* @constructor
|
|
||||||
* @extends {ol.parser.ogc.WMSCapabilities_v1_1}
|
|
||||||
*/
|
|
||||||
ol.parser.ogc.WMSCapabilities_v1_1_0 = function() {
|
|
||||||
goog.base(this);
|
|
||||||
this.version = '1.1.0';
|
|
||||||
goog.object.extend(this.readers['http://www.opengis.net/wms'], {
|
|
||||||
'SRS': function(node, obj) {
|
|
||||||
var srs = this.getChildValue(node);
|
|
||||||
var values = srs.split(/ +/);
|
|
||||||
for (var i = 0, ii = values.length; i < ii; i++) {
|
|
||||||
obj['srs'][values[i]] = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
};
|
|
||||||
goog.inherits(ol.parser.ogc.WMSCapabilities_v1_1_0,
|
|
||||||
ol.parser.ogc.WMSCapabilities_v1_1);
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
goog.provide('ol.parser.ogc.WMSCapabilities_v1_1_1');
|
|
||||||
|
|
||||||
goog.require('goog.object');
|
|
||||||
goog.require('ol.parser.ogc.WMSCapabilities_v1_1');
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Read [WMS](http://www.opengeospatial.org/standards/wms) capabilities
|
|
||||||
* version 1.1.1
|
|
||||||
*
|
|
||||||
* @constructor
|
|
||||||
* @extends {ol.parser.ogc.WMSCapabilities_v1_1}
|
|
||||||
*/
|
|
||||||
ol.parser.ogc.WMSCapabilities_v1_1_1 = function() {
|
|
||||||
goog.base(this);
|
|
||||||
this.version = '1.1.1';
|
|
||||||
goog.object.extend(this.readers['http://www.opengis.net/wms'], {
|
|
||||||
'SRS': function(node, obj) {
|
|
||||||
obj['srs'][this.getChildValue(node)] = true;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
};
|
|
||||||
goog.inherits(ol.parser.ogc.WMSCapabilities_v1_1_1,
|
|
||||||
ol.parser.ogc.WMSCapabilities_v1_1);
|
|
||||||
@@ -1,48 +0,0 @@
|
|||||||
goog.provide('ol.parser.ogc.WMSCapabilities_v1_1_1_WMSC');
|
|
||||||
|
|
||||||
goog.require('goog.object');
|
|
||||||
goog.require('ol.parser.ogc.WMSCapabilities_v1_1_1');
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @constructor
|
|
||||||
* @extends {ol.parser.ogc.WMSCapabilities_v1_1_1}
|
|
||||||
*/
|
|
||||||
ol.parser.ogc.WMSCapabilities_v1_1_1_WMSC = function() {
|
|
||||||
goog.base(this);
|
|
||||||
this.profile = 'WMSC';
|
|
||||||
goog.object.extend(this.readers['http://www.opengis.net/wms'], {
|
|
||||||
'VendorSpecificCapabilities': function(node, obj) {
|
|
||||||
obj['vendorSpecific'] = {'tileSets': []};
|
|
||||||
this.readChildNodes(node, obj['vendorSpecific']);
|
|
||||||
},
|
|
||||||
'TileSet': function(node, vendorSpecific) {
|
|
||||||
var tileset = {'srs': {}, 'bbox': {}, 'resolutions': []};
|
|
||||||
this.readChildNodes(node, tileset);
|
|
||||||
vendorSpecific.tileSets.push(tileset);
|
|
||||||
},
|
|
||||||
'Resolutions': function(node, tileset) {
|
|
||||||
var res = this.getChildValue(node).split(' ');
|
|
||||||
for (var i = 0, ii = res.length; i < ii; i++) {
|
|
||||||
if (res[i] !== '') {
|
|
||||||
tileset['resolutions'].push(parseFloat(res[i]));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
'Width': function(node, tileset) {
|
|
||||||
tileset['width'] = parseInt(this.getChildValue(node), 10);
|
|
||||||
},
|
|
||||||
'Height': function(node, tileset) {
|
|
||||||
tileset['height'] = parseInt(this.getChildValue(node), 10);
|
|
||||||
},
|
|
||||||
'Layers': function(node, tileset) {
|
|
||||||
tileset['layers'] = this.getChildValue(node);
|
|
||||||
},
|
|
||||||
'Styles': function(node, tileset) {
|
|
||||||
tileset['styles'] = this.getChildValue(node);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
};
|
|
||||||
goog.inherits(ol.parser.ogc.WMSCapabilities_v1_1_1_WMSC,
|
|
||||||
ol.parser.ogc.WMSCapabilities_v1_1_1);
|
|
||||||
@@ -1,114 +0,0 @@
|
|||||||
goog.provide('ol.parser.ogc.WMSCapabilities_v1_3_0');
|
|
||||||
|
|
||||||
goog.require('goog.object');
|
|
||||||
goog.require('ol.parser.ogc.WMSCapabilities_v1');
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Read [WMS](http://www.opengeospatial.org/standards/wms) capabilities
|
|
||||||
* version 1.3.0
|
|
||||||
*
|
|
||||||
* @constructor
|
|
||||||
* @extends {ol.parser.ogc.WMSCapabilities_v1}
|
|
||||||
*/
|
|
||||||
ol.parser.ogc.WMSCapabilities_v1_3_0 = function() {
|
|
||||||
goog.base(this);
|
|
||||||
var bboxreader = this.readers['http://www.opengis.net/wms']['BoundingBox'];
|
|
||||||
goog.object.extend(this.readers['http://www.opengis.net/wms'], {
|
|
||||||
'WMS_Capabilities': function(node, obj) {
|
|
||||||
this.readChildNodes(node, obj);
|
|
||||||
},
|
|
||||||
'LayerLimit': function(node, obj) {
|
|
||||||
obj['layerLimit'] = parseInt(this.getChildValue(node), 10);
|
|
||||||
},
|
|
||||||
'MaxWidth': function(node, obj) {
|
|
||||||
obj['maxWidth'] = parseInt(this.getChildValue(node), 10);
|
|
||||||
},
|
|
||||||
'MaxHeight': function(node, obj) {
|
|
||||||
obj['maxHeight'] = parseInt(this.getChildValue(node), 10);
|
|
||||||
},
|
|
||||||
'BoundingBox': function(node, obj) {
|
|
||||||
var bbox = bboxreader.apply(this, arguments);
|
|
||||||
bbox['srs'] = node.getAttribute('CRS');
|
|
||||||
obj['bbox'][bbox['srs']] = bbox;
|
|
||||||
},
|
|
||||||
'CRS': function(node, obj) {
|
|
||||||
// CRS is the synonym of SRS
|
|
||||||
this.readers['http://www.opengis.net/wms']['SRS'].apply(this, arguments);
|
|
||||||
},
|
|
||||||
'EX_GeographicBoundingBox': function(node, obj) {
|
|
||||||
// replacement of LatLonBoundingBox
|
|
||||||
obj['llbbox'] = [];
|
|
||||||
this.readChildNodes(node, obj['llbbox']);
|
|
||||||
},
|
|
||||||
'westBoundLongitude': function(node, obj) {
|
|
||||||
obj[0] = this.getChildValue(node);
|
|
||||||
},
|
|
||||||
'eastBoundLongitude': function(node, obj) {
|
|
||||||
obj[2] = this.getChildValue(node);
|
|
||||||
},
|
|
||||||
'southBoundLatitude': function(node, obj) {
|
|
||||||
obj[1] = this.getChildValue(node);
|
|
||||||
},
|
|
||||||
'northBoundLatitude': function(node, obj) {
|
|
||||||
obj[3] = this.getChildValue(node);
|
|
||||||
},
|
|
||||||
'MinScaleDenominator': function(node, obj) {
|
|
||||||
obj['maxScale'] = parseFloat(this.getChildValue(node)).toPrecision(16);
|
|
||||||
},
|
|
||||||
'MaxScaleDenominator': function(node, obj) {
|
|
||||||
obj['minScale'] = parseFloat(this.getChildValue(node)).toPrecision(16);
|
|
||||||
},
|
|
||||||
'Dimension': function(node, obj) {
|
|
||||||
// dimension has extra attributes: default, multipleValues,
|
|
||||||
// nearestValue, current which used to be part of Extent. It now
|
|
||||||
// also contains the values.
|
|
||||||
var name = node.getAttribute('name').toLowerCase();
|
|
||||||
var dim = {
|
|
||||||
'name': name,
|
|
||||||
'units': node.getAttribute('units'),
|
|
||||||
'unitsymbol': node.getAttribute('unitSymbol'),
|
|
||||||
'nearestVal': node.getAttribute('nearestValue') === '1',
|
|
||||||
'multipleVal': node.getAttribute('multipleValues') === '1',
|
|
||||||
'default': node.getAttribute('default') || '',
|
|
||||||
'current': node.getAttribute('current') === '1',
|
|
||||||
'values': this.getChildValue(node).split(',')
|
|
||||||
};
|
|
||||||
// Theoretically there can be more dimensions with the same
|
|
||||||
// name, but with a different unit. Until we meet such a case,
|
|
||||||
// let's just keep the same structure as the WMS 1.1
|
|
||||||
// GetCapabilities parser uses. We will store the last
|
|
||||||
// one encountered.
|
|
||||||
obj['dimensions'][dim['name']] = dim;
|
|
||||||
},
|
|
||||||
'Keyword': function(node, obj) {
|
|
||||||
var keyword = {'value': this.getChildValue(node),
|
|
||||||
'vocabulary': node.getAttribute('vocabulary')};
|
|
||||||
if (obj['keywords']) {
|
|
||||||
obj['keywords'].push(keyword);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
this.readers['sld'] = {
|
|
||||||
'UserDefinedSymbolization': function(node, obj) {
|
|
||||||
var readers = this.readers['http://www.opengis.net/wms'];
|
|
||||||
readers.UserDefinedSymbolization.apply(this, arguments);
|
|
||||||
// add the two extra attributes
|
|
||||||
var value = node.getAttribute('InlineFeature');
|
|
||||||
obj['userSymbols']['inlineFeature'] = parseInt(value, 10) == 1;
|
|
||||||
value = node.getAttribute('RemoteWCS');
|
|
||||||
obj['userSymbols']['remoteWCS'] = parseInt(value, 10) == 1;
|
|
||||||
},
|
|
||||||
'DescribeLayer': function(node, obj) {
|
|
||||||
var readers = this.readers['http://www.opengis.net/wms'];
|
|
||||||
readers.DescribeLayer.apply(this, arguments);
|
|
||||||
},
|
|
||||||
'GetLegendGraphic': function(node, obj) {
|
|
||||||
var readers = this.readers['http://www.opengis.net/wms'];
|
|
||||||
readers.GetLegendGraphic.apply(this, arguments);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
};
|
|
||||||
goog.inherits(ol.parser.ogc.WMSCapabilities_v1_3_0,
|
|
||||||
ol.parser.ogc.WMSCapabilities_v1);
|
|
||||||
Reference in New Issue
Block a user