do not hard-code the namespaceURIs multiple times

This commit is contained in:
Bart van den Eijnden
2013-10-14 16:08:50 +02:00
committed by Bart van den Eijnden
parent 429a2e455b
commit 01c9448c3c
+12 -13
View File
@@ -23,8 +23,8 @@ goog.require('ol.style.Text');
*/ */
ol.parser.ogc.SLD_v1 = function() { ol.parser.ogc.SLD_v1 = function() {
this.defaultNamespaceURI = 'http://www.opengis.net/sld'; this.defaultNamespaceURI = 'http://www.opengis.net/sld';
this.readers = { this.readers = {};
'http://www.opengis.net/sld': { this.readers[this.defaultNamespaceURI] = {
'StyledLayerDescriptor': function(node, sld) { 'StyledLayerDescriptor': function(node, sld) {
sld.version = node.getAttribute('version'); sld.version = node.getAttribute('version');
this.readChildNodes(node, sld); this.readChildNodes(node, sld);
@@ -93,7 +93,7 @@ ol.parser.ogc.SLD_v1 = function() {
); );
}, },
'Label': function(node, symbolizer) { 'Label': function(node, symbolizer) {
var ogcreaders = this.readers['http://www.opengis.net/ogc']; var ogcreaders = this.readers[this.filter_.defaultNamespaceURI];
var value = ogcreaders._expression.call(this, node); var value = ogcreaders._expression.call(this, node);
if (value) { if (value) {
symbolizer.text = value; symbolizer.text = value;
@@ -115,7 +115,7 @@ ol.parser.ogc.SLD_v1 = function() {
}); });
}, },
'Radius': function(node, symbolizer) { 'Radius': function(node, symbolizer) {
var ogcreaders = this.readers['http://www.opengis.net/ogc']; var ogcreaders = this.readers[this.filter_.defaultNamespaceURI];
var radius = ogcreaders._expression.call(this, node); var radius = ogcreaders._expression.call(this, node);
goog.asserts.assertInstanceof(radius, ol.expr.Literal, goog.asserts.assertInstanceof(radius, ol.expr.Literal,
'radius expected to be an ol.expr.Literal'); 'radius expected to be an ol.expr.Literal');
@@ -217,7 +217,7 @@ ol.parser.ogc.SLD_v1 = function() {
var cssProperty = node.getAttribute('name'); var cssProperty = node.getAttribute('name');
var symProperty = ol.parser.ogc.SLD_v1.cssMap_[cssProperty]; var symProperty = ol.parser.ogc.SLD_v1.cssMap_[cssProperty];
if (symProperty) { if (symProperty) {
var ogcreaders = this.readers['http://www.opengis.net/ogc']; var ogcreaders = this.readers[this.filter_.defaultNamespaceURI];
symbolizer[symProperty] = ogcreaders._expression.call(this, node); symbolizer[symProperty] = ogcreaders._expression.call(this, node);
} }
}, },
@@ -264,15 +264,15 @@ ol.parser.ogc.SLD_v1 = function() {
graphic.graphicName = this.getChildValue(node); graphic.graphicName = this.getChildValue(node);
}, },
'Opacity': function(node, obj) { 'Opacity': function(node, obj) {
var ogcreaders = this.readers['http://www.opengis.net/ogc']; var ogcreaders = this.readers[this.filter_.defaultNamespaceURI];
obj.opacity = ogcreaders._expression.call(this, node); obj.opacity = ogcreaders._expression.call(this, node);
}, },
'Size': function(node, obj) { 'Size': function(node, obj) {
var ogcreaders = this.readers['http://www.opengis.net/ogc']; var ogcreaders = this.readers[this.filter_.defaultNamespaceURI];
obj.size = ogcreaders._expression.call(this, node); obj.size = ogcreaders._expression.call(this, node);
}, },
'Rotation': function(node, obj) { 'Rotation': function(node, obj) {
var ogcreaders = this.readers['http://www.opengis.net/ogc']; var ogcreaders = this.readers[this.filter_.defaultNamespaceURI];
obj.rotation = ogcreaders._expression.call(this, node); obj.rotation = ogcreaders._expression.call(this, node);
}, },
'OnlineResource': function(node, obj) { 'OnlineResource': function(node, obj) {
@@ -283,10 +283,9 @@ ol.parser.ogc.SLD_v1 = function() {
'Format': function(node, graphic) { 'Format': function(node, graphic) {
graphic.graphicFormat = this.getChildValue(node); graphic.graphicFormat = this.getChildValue(node);
} }
}
}; };
this.writers = { this.writers = {};
'http://www.opengis.net/sld': { this.writers[this.defaultNamespaceURI] = {
'StyledLayerDescriptor': function(sld) { 'StyledLayerDescriptor': function(sld) {
var node = this.createElementNS('sld:StyledLayerDescriptor'); var node = this.createElementNS('sld:StyledLayerDescriptor');
node.setAttribute('version', this.version); node.setAttribute('version', this.version);
@@ -380,7 +379,8 @@ ol.parser.ogc.SLD_v1 = function() {
if (rule.elseFilter === true) { if (rule.elseFilter === true) {
this.writeNode('ElseFilter', null, null, node); this.writeNode('ElseFilter', null, null, node);
} else if (filter) { } else if (filter) {
this.writeNode('Filter', filter, 'http://www.opengis.net/ogc', node); this.writeNode('Filter', filter, this.filter_.defaultNamespaceURI,
node);
} }
var minResolution = rule.getMinResolution(); var minResolution = rule.getMinResolution();
if (minResolution > 0) { if (minResolution > 0) {
@@ -585,7 +585,6 @@ ol.parser.ogc.SLD_v1 = function() {
this.filter_.writeOgcExpression(value, node); this.filter_.writeOgcExpression(value, node);
return node; return node;
} }
}
}; };
this.filter_ = new ol.parser.ogc.Filter_v1_0_0(); this.filter_ = new ol.parser.ogc.Filter_v1_0_0();
for (var uri in this.filter_.readers) { for (var uri in this.filter_.readers) {