diff options
Diffstat (limited to 'misc/openlayers/lib/OpenLayers/Rule.js')
-rw-r--r-- | misc/openlayers/lib/OpenLayers/Rule.js | 236 |
1 files changed, 0 insertions, 236 deletions
diff --git a/misc/openlayers/lib/OpenLayers/Rule.js b/misc/openlayers/lib/OpenLayers/Rule.js deleted file mode 100644 index dbf5e68..0000000 --- a/misc/openlayers/lib/OpenLayers/Rule.js +++ /dev/null @@ -1,236 +0,0 @@ -/* 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/BaseTypes/Class.js - * @requires OpenLayers/Util.js - * @requires OpenLayers/Style.js - */ - -/** - * Class: OpenLayers.Rule - * This class represents an SLD Rule, as being used for rule-based SLD styling. - */ -OpenLayers.Rule = OpenLayers.Class({ - - /** - * Property: id - * {String} A unique id for this session. - */ - id: null, - - /** - * APIProperty: name - * {String} name of this rule - */ - name: null, - - /** - * Property: title - * {String} Title of this rule (set if included in SLD) - */ - title: null, - - /** - * Property: description - * {String} Description of this rule (set if abstract is included in SLD) - */ - description: null, - - /** - * Property: context - * {Object} An optional object with properties that the rule should be - * evaluated against. If no context is specified, feature.attributes will - * be used. - */ - context: null, - - /** - * Property: filter - * {<OpenLayers.Filter>} Optional filter for the rule. - */ - filter: null, - - /** - * Property: elseFilter - * {Boolean} Determines whether this rule is only to be applied only if - * no other rules match (ElseFilter according to the SLD specification). - * Default is false. For instances of OpenLayers.Rule, if elseFilter is - * false, the rule will always apply. For subclasses, the else property is - * ignored. - */ - elseFilter: false, - - /** - * Property: symbolizer - * {Object} Symbolizer or hash of symbolizers for this rule. If hash of - * symbolizers, keys are one or more of ["Point", "Line", "Polygon"]. The - * latter if useful if it is required to style e.g. vertices of a line - * with a point symbolizer. Note, however, that this is not implemented - * yet in OpenLayers, but it is the way how symbolizers are defined in - * SLD. - */ - symbolizer: null, - - /** - * Property: symbolizers - * {Array} Collection of symbolizers associated with this rule. If - * provided at construction, the symbolizers array has precedence - * over the deprecated symbolizer property. Note that multiple - * symbolizers are not currently supported by the vector renderers. - * Rules with multiple symbolizers are currently only useful for - * maintaining elements in an SLD document. - */ - symbolizers: null, - - /** - * APIProperty: minScaleDenominator - * {Number} or {String} minimum scale at which to draw the feature. - * In the case of a String, this can be a combination of text and - * propertyNames in the form "literal ${propertyName}" - */ - minScaleDenominator: null, - - /** - * APIProperty: maxScaleDenominator - * {Number} or {String} maximum scale at which to draw the feature. - * In the case of a String, this can be a combination of text and - * propertyNames in the form "literal ${propertyName}" - */ - maxScaleDenominator: null, - - /** - * Constructor: OpenLayers.Rule - * Creates a Rule. - * - * Parameters: - * options - {Object} An optional object with properties to set on the - * rule - * - * Returns: - * {<OpenLayers.Rule>} - */ - initialize: function(options) { - this.symbolizer = {}; - OpenLayers.Util.extend(this, options); - if (this.symbolizers) { - delete this.symbolizer; - } - this.id = OpenLayers.Util.createUniqueID(this.CLASS_NAME + "_"); - }, - - /** - * APIMethod: destroy - * nullify references to prevent circular references and memory leaks - */ - destroy: function() { - for (var i in this.symbolizer) { - this.symbolizer[i] = null; - } - this.symbolizer = null; - delete this.symbolizers; - }, - - /** - * APIMethod: evaluate - * evaluates this rule for a specific feature - * - * Parameters: - * feature - {<OpenLayers.Feature>} feature to apply the rule to. - * - * Returns: - * {Boolean} true if the rule applies, false if it does not. - * This rule is the default rule and always returns true. - */ - evaluate: function(feature) { - var context = this.getContext(feature); - var applies = true; - - if (this.minScaleDenominator || this.maxScaleDenominator) { - var scale = feature.layer.map.getScale(); - } - - // check if within minScale/maxScale bounds - if (this.minScaleDenominator) { - applies = scale >= OpenLayers.Style.createLiteral( - this.minScaleDenominator, context); - } - if (applies && this.maxScaleDenominator) { - applies = scale < OpenLayers.Style.createLiteral( - this.maxScaleDenominator, context); - } - - // check if optional filter applies - if(applies && this.filter) { - // feature id filters get the feature, others get the context - if(this.filter.CLASS_NAME == "OpenLayers.Filter.FeatureId") { - applies = this.filter.evaluate(feature); - } else { - applies = this.filter.evaluate(context); - } - } - - return applies; - }, - - /** - * Method: getContext - * Gets the context for evaluating this rule - * - * Paramters: - * feature - {<OpenLayers.Feature>} feature to take the context from if - * none is specified. - */ - getContext: function(feature) { - var context = this.context; - if (!context) { - context = feature.attributes || feature.data; - } - if (typeof this.context == "function") { - context = this.context(feature); - } - return context; - }, - - /** - * APIMethod: clone - * Clones this rule. - * - * Returns: - * {<OpenLayers.Rule>} Clone of this rule. - */ - clone: function() { - var options = OpenLayers.Util.extend({}, this); - if (this.symbolizers) { - // clone symbolizers - var len = this.symbolizers.length; - options.symbolizers = new Array(len); - for (var i=0; i<len; ++i) { - options.symbolizers[i] = this.symbolizers[i].clone(); - } - } else { - // clone symbolizer - options.symbolizer = {}; - var value, type; - for(var key in this.symbolizer) { - value = this.symbolizer[key]; - type = typeof value; - if(type === "object") { - options.symbolizer[key] = OpenLayers.Util.extend({}, value); - } else if(type === "string") { - options.symbolizer[key] = value; - } - } - } - // clone filter - options.filter = this.filter && this.filter.clone(); - // clone context - options.context = this.context && OpenLayers.Util.extend({}, this.context); - return new OpenLayers.Rule(options); - }, - - CLASS_NAME: "OpenLayers.Rule" -});
\ No newline at end of file |