⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 v1.js

📁 OpenLayers-2.6 api 函数
💻 JS
📖 第 1 页 / 共 3 页
字号:
/* Copyright (c) 2006-2008 MetaCarta, Inc., 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/SLD.js *//** * Class: OpenLayers.Format.SLD.v1 * Superclass for SLD version 1 parsers. * * Inherits from: *  - <OpenLayers.Format.XML> */OpenLayers.Format.SLD.v1 = OpenLayers.Class(OpenLayers.Format.XML, {        /**     * Property: namespaces     * {Object} Mapping of namespace aliases to namespace URIs.     */    namespaces: {        sld: "http://www.opengis.net/sld",        ogc: "http://www.opengis.net/ogc",        xlink: "http://www.w3.org/1999/xlink",        xsi: "http://www.w3.org/2001/XMLSchema-instance"    },        /**     * Property: defaultPrefix     */    defaultPrefix: "sld",    /**     * Property: schemaLocation     * {String} Schema location for a particular minor version.     */    schemaLocation: null,    /**     * APIProperty: defaultSymbolizer.     * {Object} A symbolizer with the SLD defaults.     */    defaultSymbolizer: {        fillColor: "#808080",        fillOpacity: 1,        strokeColor: "#000000",        strokeOpacity: 1,        strokeWidth: 1,        pointRadius: 6    },        /**     * Constructor: OpenLayers.Format.SLD.v1     * Instances of this class are not created directly.  Use the     *     <OpenLayers.Format.SLD> constructor instead.     *     * Parameters:     * options - {Object} An optional object whose properties will be set on     *     this instance.     */    initialize: function(options) {        OpenLayers.Format.XML.prototype.initialize.apply(this, [options]);    },        /**     * Method: read     *     * Parameters:     * data - {DOMElement} An SLD document element.     *     * Returns:     * {Object} An object representing the SLD.     */    read: function(data) {                var sld = {            namedLayers: {}        };        this.readChildNodes(data, sld);        return sld;    },        /**     * 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: {        "sld": {            "StyledLayerDescriptor": function(node, sld) {                sld.version = node.getAttribute("version");                this.readChildNodes(node, sld);            },            "Name": function(node, obj) {                obj.name = this.getChildValue(node);            },            "Title": function(node, obj) {                obj.title = this.getChildValue(node);            },            "Abstract": function(node, obj) {                obj.description = this.getChildValue(node);            },            "NamedLayer": function(node, sld) {                var layer = {                    userStyles: [],                    namedStyles: []                };                this.readChildNodes(node, layer);                // give each of the user styles this layer name                for(var i=0; i<layer.userStyles.length; ++i) {                    layer.userStyles[i].layerName = layer.name;                }                sld.namedLayers[layer.name] = layer;            },            "NamedStyle": function(node, layer) {                layer.namedStyles.push(                    this.getChildName(node.firstChild)                );            },            "UserStyle": function(node, layer) {                var style = new OpenLayers.Style(this.defaultSymbolizer);                this.readChildNodes(node, style);                layer.userStyles.push(style);            },            "IsDefault": function(node, style) {                if(this.getChildValue(node) == "1") {                    style.isDefault = true;                }            },            "FeatureTypeStyle": function(node, style) {                // OpenLayers doesn't have a place for FeatureTypeStyle                // Name, Title, Abstract, FeatureTypeName, or                // SemanticTypeIdentifier so, we make a temporary object                // and later just use the Rule(s).                var obj = {                    rules: []                };                this.readChildNodes(node, obj);                style.rules = obj.rules;            },            "Rule": function(node, obj) {                var rule = new OpenLayers.Rule();                this.readChildNodes(node, rule);                obj.rules.push(rule);            },            "ElseFilter": function(node, rule) {                rule.elseFilter = true;            },            "MinScaleDenominator": function(node, rule) {                rule.minScaleDenominator = this.getChildValue(node);            },            "MaxScaleDenominator": function(node, rule) {                rule.maxScaleDenominator = this.getChildValue(node);            },            "LineSymbolizer": function(node, rule) {                // OpenLayers doens't do painter's order, instead we extend                var symbolizer = rule.symbolizer["Line"] || {};                this.readChildNodes(node, symbolizer);                // in case it didn't exist before                rule.symbolizer["Line"] = symbolizer;            },            "PolygonSymbolizer": function(node, rule) {                // OpenLayers doens't do painter's order, instead we extend                var symbolizer = rule.symbolizer["Polygon"] || {};                this.readChildNodes(node, symbolizer);                // in case it didn't exist before                rule.symbolizer["Polygon"] = symbolizer;            },            "PointSymbolizer": function(node, rule) {                // OpenLayers doens't do painter's order, instead we extend                var symbolizer = rule.symbolizer["Point"] || {};                this.readChildNodes(node, symbolizer);                // in case it didn't exist before                rule.symbolizer["Point"] = symbolizer;            },            "Stroke": function(node, symbolizer) {                this.readChildNodes(node, symbolizer);            },            "Fill": function(node, symbolizer) {                this.readChildNodes(node, symbolizer);            },            "CssParameter": function(node, symbolizer) {                var cssProperty = node.getAttribute("name");                var symProperty = this.cssMap[cssProperty];                if(symProperty) {                    // Limited support for parsing of OGC expressions                    var value = this.readOgcExpression(node);                    // always string, could be an empty string                    if(value) {                        symbolizer[symProperty] = value;                    }                }            },            "Graphic": function(node, symbolizer) {                var graphic = {};                // painter's order not respected here, clobber previous with next                this.readChildNodes(node, graphic);                // directly properties with names that match symbolizer properties                var properties = [                    "strokeColor", "strokeWidth", "strokeOpacity",                    "strokeLinecap", "fillColor", "fillOpacity",                    "graphicName", "rotation", "graphicFormat"                ];                var prop, value;                for(var i=0; i<properties.length; ++i) {                    prop = properties[i];                    value = graphic[prop];                    if(value != undefined) {                        symbolizer[prop] = value;                    }                }                // set other generic properties with specific graphic property names                if(graphic.opacity != undefined) {                    symbolizer.graphicOpacity = graphic.opacity;                }                if(graphic.size != undefined) {                    symbolizer.pointRadius = graphic.size;                }                if(graphic.href != undefined) {                    symbolizer.externalGraphic = graphic.href;                }            },            "ExternalGraphic": function(node, graphic) {                this.readChildNodes(node, graphic);            },            "Mark": function(node, graphic) {                this.readChildNodes(node, graphic);            },            "WellKnownName": function(node, graphic) {                graphic.graphicName = this.getChildValue(node);            },            "Opacity": function(node, obj) {                // No support for parsing of OGC expressions                var opacity = this.getChildValue(node);                // always string, could be empty string                if(opacity) {                    obj.opacity = opacity;                }            },            "Size": function(node, obj) {                // No support for parsing of OGC expressions                var size = this.getChildValue(node);                // always string, could be empty string                if(size) {                    obj.size = size;                }            },            "Rotation": function(node, obj) {                // No support for parsing of OGC expressions                var rotation = this.getChildValue(node);                // always string, could be empty string                if(rotation) {                    obj.rotation = rotation;                }            },            "OnlineResource": function(node, obj) {                obj.href = this.getAttributeNS(                    node, this.namespaces.xlink, "href"                );            },            "Format": function(node, graphic) {                graphic.graphicFormat = this.getChildValue(node);            }        },        "ogc": {            "Filter": function(node, rule) {                // Filters correspond to subclasses of OpenLayers.Filter.                // Since they contain information we don't persist, we                // create a temporary object and then pass on the filter                // (ogc:Filter) to the parent rule (sld:Rule).                var obj = {                    fids: [],                    filters: []                };                this.readChildNodes(node, obj);                if(obj.fids.length > 0) {                    rule.filter = new OpenLayers.Filter.FeatureId({                        fids: obj.fids                    });                } else if(obj.filters.length > 0) {                    rule.filter = obj.filters[0];                }            },            "FeatureId": function(node, obj) {                var fid = node.getAttribute("fid");                if(fid) {                    obj.fids.push(fid);                }            },            "And": function(node, obj) {                var filter = new OpenLayers.Filter.Logical({                    type: OpenLayers.Filter.Logical.AND                });                this.readChildNodes(node, filter);                obj.filters.push(filter);            },            "Or": function(node, obj) {                var filter = new OpenLayers.Filter.Logical({                    type: OpenLayers.Filter.Logical.OR                });                this.readChildNodes(node, filter);                obj.filters.push(filter);            },            "Not": function(node, obj) {                var filter = new OpenLayers.Filter.Logical({                    type: OpenLayers.Filter.Logical.NOT                });                this.readChildNodes(node, filter);                obj.filters.push(filter);            },            "PropertyIsEqualTo": function(node, obj) {                var filter = new OpenLayers.Filter.Comparison({                    type: OpenLayers.Filter.Comparison.EQUAL_TO                });                this.readChildNodes(node, filter);                obj.filters.push(filter);            },            "PropertyIsNotEqualTo": function(node, obj) {                var filter = new OpenLayers.Filter.Comparison({                    type: OpenLayers.Filter.Comparison.NOT_EQUAL_TO                });                this.readChildNodes(node, filter);                obj.filters.push(filter);            },            "PropertyIsLessThan": function(node, obj) {                var filter = new OpenLayers.Filter.Comparison({                    type: OpenLayers.Filter.Comparison.LESS_THAN                });                this.readChildNodes(node, filter);                obj.filters.push(filter);            },            "PropertyIsGreaterThan": function(node, obj) {                var filter = new OpenLayers.Filter.Comparison({                    type: OpenLayers.Filter.Comparison.GREATER_THAN                });                this.readChildNodes(node, filter);                obj.filters.push(filter);            },            "PropertyIsLessThanOrEqualTo": function(node, obj) {                var filter = new OpenLayers.Filter.Comparison({                    type: OpenLayers.Filter.Comparison.LESS_THAN_OR_EQUAL_TO                });                this.readChildNodes(node, filter);                obj.filters.push(filter);            },            "PropertyIsGreaterThanOrEqualTo": function(node, obj) {                var filter = new OpenLayers.Filter.Comparison({                    type: OpenLayers.Filter.Comparison.GREATER_THAN_OR_EQUAL_TO                });                this.readChildNodes(node, filter);                obj.filters.push(filter);            },            "PropertyIsBetween": function(node, obj) {                var filter = new OpenLayers.Filter.Comparison({                    type: OpenLayers.Filter.Comparison.BETWEEN                });                this.readChildNodes(node, filter);                obj.filters.push(filter);            },            "PropertyIsLike": function(node, obj) {                var filter = new OpenLayers.Filter.Comparison({                    type: OpenLayers.Filter.Comparison.LIKE                });                this.readChildNodes(node, filter);                var wildCard = node.getAttribute("wildCard");                var singleChar = node.getAttribute("singleChar");                var esc = node.getAttribute("escape");                filter.value2regex(wildCard, singleChar, esc);                obj.filters.push(filter);            },            "Literal": function(node, obj) {                obj.value = this.getChildValue(node);            },            "PropertyName": function(node, filter) {                filter.property = this.getChildValue(node);            },            "LowerBoundary": function(node, filter) {                filter.lowerBoundary = this.readOgcExpression(node);            },

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -