亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? layerswitcher.js

?? 用來在地圖上做操作GIS,在地圖上做標記
?? JS
?? 第 1 頁 / 共 2 頁
字號:
/* Copyright (c) 2006-2007 MetaCarta, Inc., published under the BSD license. * See http://svn.openlayers.org/trunk/openlayers/release-license.txt  * for the full text of the license. *//**  * @requires OpenLayers/Control.js *  * Class: OpenLayers.Control.LayerSwitcher * * Inherits from: *  - <OpenLayers.Control> */OpenLayers.Control.LayerSwitcher =   OpenLayers.Class(OpenLayers.Control, {    /**       * Property: activeColor     * {String}     */    activeColor: "darkblue",        /**       * Property: layerStates      * {Array(Object)} Basically a copy of the "state" of the map's layers      *     the last time the control was drawn. We have this in order to avoid     *     unnecessarily redrawing the control.     */    layerStates: null,      // DOM Elements      /**     * Property: layersDiv     * {DOMElement}      */    layersDiv: null,        /**      * Property: baseLayersDiv     * {DOMElement}     */    baseLayersDiv: null,    /**      * Property: baseLayers     * {Array(<OpenLayers.Layer>)}     */    baseLayers: null,            /**      * Property: dataLbl     * {DOMElement}      */    dataLbl: null,        /**      * Property: dataLayersDiv     * {DOMElement}      */    dataLayersDiv: null,    /**      * Property: dataLayers     * {Array(<OpenLayers.Layer>)}      */    dataLayers: null,    /**      * Property: minimizeDiv     * {DOMElement}      */    minimizeDiv: null,    /**      * Property: maximizeDiv     * {DOMElement}      */    maximizeDiv: null,        /**     * APIProperty: ascending     * {Boolean}      */    ascending: true,     /**     * Constructor: OpenLayers.Control.LayerSwitcher     *      * Parameters:     * options - {Object}     */    initialize: function(options) {        OpenLayers.Control.prototype.initialize.apply(this, arguments);        this.layerStates = [];    },    /**     * APIMethod: destroy      */        destroy: function() {                OpenLayers.Event.stopObservingElement(this.div);        OpenLayers.Event.stopObservingElement(this.minimizeDiv);        OpenLayers.Event.stopObservingElement(this.maximizeDiv);        //clear out layers info and unregister their events         this.clearLayersArray("base");        this.clearLayersArray("data");                this.map.events.unregister("addlayer", this, this.redraw);        this.map.events.unregister("changelayer", this, this.redraw);        this.map.events.unregister("removelayer", this, this.redraw);        this.map.events.unregister("changebaselayer", this, this.redraw);                OpenLayers.Control.prototype.destroy.apply(this, arguments);    },    /**      * Method: setMap     *     * Properties:     * map - {<OpenLayers.Map>}      */    setMap: function(map) {        OpenLayers.Control.prototype.setMap.apply(this, arguments);        this.map.events.register("addlayer", this, this.redraw);        this.map.events.register("changelayer", this, this.redraw);        this.map.events.register("removelayer", this, this.redraw);        this.map.events.register("changebaselayer", this, this.redraw);    },    /**     * Method: draw     *     * Returns:     * {DOMElement} A reference to the DIV DOMElement containing the      *     switcher tabs.     */      draw: function() {        OpenLayers.Control.prototype.draw.apply(this);        // create layout divs        this.loadContents();        // set mode to minimize        if(!this.outsideViewport) {            this.minimizeControl();        }        // populate div with current info        this.redraw();            return this.div;    },    /**      * Method: clearLayersArray     * User specifies either "base" or "data". we then clear all the     *     corresponding listeners, the div, and reinitialize a new array.     *      * Parameters:     * layersType - {String}       */    clearLayersArray: function(layersType) {        var layers = this[layersType + "Layers"];        if (layers) {            for(var i=0; i < layers.length; i++) {                var layer = layers[i];                OpenLayers.Event.stopObservingElement(layer.inputElem);                OpenLayers.Event.stopObservingElement(layer.labelSpan);            }        }        this[layersType + "LayersDiv"].innerHTML = "";        this[layersType + "Layers"] = [];    },    /**     * Method: checkRedraw     * Checks if the layer state has changed since the last redraw() call.     *      * Returns:     * {Boolean} The layer state changed since the last redraw() call.      */    checkRedraw: function() {        var redraw = false;        if ( !this.layerStates.length ||             (this.map.layers.length != this.layerStates.length) ) {            redraw = true;        } else {            for (var i=0; i < this.layerStates.length; i++) {                var layerState = this.layerStates[i];                var layer = this.map.layers[i];                if ( (layerState.name != layer.name) ||                      (layerState.inRange != layer.inRange) ||                      (layerState.id != layer.id) ||                      (layerState.visibility != layer.visibility) ) {                    redraw = true;                    break;                }                }        }            return redraw;    },        /**      * Method: redraw     * Goes through and takes the current state of the Map and rebuilds the     *     control to display that state. Groups base layers into a      *     radio-button group and lists each data layer with a checkbox.     *     * Returns:      * {DOMElement} A reference to the DIV DOMElement containing the control     */      redraw: function() {        //if the state hasn't changed since last redraw, no need         // to do anything. Just return the existing div.        if (!this.checkRedraw()) {             return this.div;         }         //clear out previous layers         this.clearLayersArray("base");        this.clearLayersArray("data");                var containsOverlays = false;        var containsBaseLayers = false;                // Save state -- for checking layer if the map state changed.        // We save this before redrawing, because in the process of redrawing        // we will trigger more visibility changes, and we want to not redraw        // and enter an infinite loop.        this.layerStates = new Array(this.map.layers.length);        for (var i = 0; i < this.map.layers.length; i++) {            var layer = this.map.layers[i];            this.layerStates[i] = {                'name': layer.name,                 'visibility': layer.visibility,                'inRange': layer.inRange,                'id': layer.id            };        }            var layers = this.map.layers.slice();        if (!this.ascending) { layers.reverse(); }        for( var i = 0; i < layers.length; i++) {            var layer = layers[i];            var baseLayer = layer.isBaseLayer;            if (layer.displayInLayerSwitcher) {                if (baseLayer) {                    containsBaseLayers = true;                } else {                    containsOverlays = true;                }                    // only check a baselayer if it is *the* baselayer, check data                //  layers if they are visible                var checked = (baseLayer) ? (layer == this.map.baseLayer)                                          : layer.getVisibility();                    // create input element                var inputElem = document.createElement("input");                inputElem.id = "input_" + layer.name;                inputElem.name = (baseLayer) ? "baseLayers" : layer.name;                inputElem.type = (baseLayer) ? "radio" : "checkbox";                inputElem.value = layer.name;                inputElem.checked = checked;                inputElem.defaultChecked = checked;                if (!baseLayer && !layer.inRange) {                    inputElem.disabled = true;                }                var context = {                    'inputElem': inputElem,                    'layer': layer,                    'layerSwitcher': this                }                OpenLayers.Event.observe(inputElem, "mouseup",                     OpenLayers.Function.bindAsEventListener(this.onInputClick,                                                            context)                );                                // create span                var labelSpan = document.createElement("span");                if (!baseLayer && !layer.inRange) {                    labelSpan.style.color = "gray";                }                labelSpan.innerHTML = layer.name;                labelSpan.style.verticalAlign = (baseLayer) ? "bottom"                                                             : "baseline";                OpenLayers.Event.observe(labelSpan, "click",                     OpenLayers.Function.bindAsEventListener(this.onInputClick,                                                            context)                );                // create line break                var br = document.createElement("br");                                    var groupArray = (baseLayer) ? this.baseLayers                                             : this.dataLayers;                groupArray.push({                    'layer': layer,                    'inputElem': inputElem,                    'labelSpan': labelSpan                });

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色先锋资源久久综合| 久久国产视频网| 91原创在线视频| 综合分类小说区另类春色亚洲小说欧美| 国内偷窥港台综合视频在线播放| 2024国产精品| 国产超碰在线一区| 中文字幕在线一区二区三区| 99久久婷婷国产精品综合| 一区二区三区色| 欧美日韩三级一区二区| 青娱乐精品视频| 久久网站最新地址| 成人激情视频网站| 亚洲风情在线资源站| 日韩欧美久久一区| 国产成人av一区二区三区在线观看| 国产欧美一区二区精品仙草咪| av在线不卡电影| 亚洲电影视频在线| 久久久久久97三级| 在线观看不卡视频| 韩国女主播一区| 亚洲免费在线播放| 欧美电视剧在线看免费| 国产不卡一区视频| 亚洲国产精品久久人人爱| 欧美不卡激情三级在线观看| av亚洲精华国产精华| 手机精品视频在线观看| 国产亚洲成av人在线观看导航| 在线精品视频一区二区| 国产毛片一区二区| 亚洲国产欧美日韩另类综合| 国产亚洲成aⅴ人片在线观看| 在线观看91视频| 国产精品66部| 日韩av中文字幕一区二区| 国产精品久久久久久久久免费桃花 | 欧美日韩一区二区电影| 国产麻豆91精品| 亚洲国产日韩一区二区| 亚洲国产电影在线观看| 51精品国自产在线| 99精品欧美一区二区三区小说| 蜜臀久久99精品久久久久宅男 | 极品销魂美女一区二区三区| 亚洲天堂福利av| 久久伊人中文字幕| 在线观看91av| 色94色欧美sute亚洲线路一ni| 国产精品一品二品| 麻豆精品蜜桃视频网站| 性做久久久久久免费观看欧美| 日韩毛片精品高清免费| 国产欧美精品区一区二区三区 | 亚洲不卡av一区二区三区| 亚洲欧洲国产日本综合| 久久夜色精品一区| 日韩手机在线导航| 欧美日韩视频在线一区二区| 国产1区2区3区精品美女| 99久久免费视频.com| 国产精品一区在线| 婷婷夜色潮精品综合在线| 国产精品国产三级国产a| 欧美不卡视频一区| 欧美久久一区二区| 91免费视频观看| 99在线精品一区二区三区| 国产98色在线|日韩| 国产精品亚洲成人| 久久精品国产精品青草| 亚洲第一主播视频| 一区二区三区精品在线| 国产精品久久久久久福利一牛影视 | 亚洲欧洲精品一区二区精品久久久| 777奇米四色成人影色区| 成人激情黄色小说| 看电视剧不卡顿的网站| 日韩精品成人一区二区在线| 亚洲毛片av在线| 国产精品理伦片| 国产蜜臀97一区二区三区| 精品成人在线观看| 欧美一级淫片007| 欧美电影一区二区三区| 91在线观看地址| 欧美三级韩国三级日本三斤| av福利精品导航| 成人国产精品免费网站| 成人免费高清在线| 91在线porny国产在线看| 欧美在线观看一二区| 色激情天天射综合网| 91免费国产视频网站| 97久久精品人人爽人人爽蜜臀| av午夜精品一区二区三区| a4yy欧美一区二区三区| 国产不卡一区视频| 色婷婷香蕉在线一区二区| 在线这里只有精品| 欧美日韩三级一区| 欧美精品在线一区二区三区| 欧美美女网站色| 69堂国产成人免费视频| 欧美一区二区三区在线观看视频 | 午夜精品一区二区三区三上悠亚| 亚洲高清三级视频| 日本成人在线视频网站| 精久久久久久久久久久| 国产iv一区二区三区| 成人看片黄a免费看在线| 成人av免费在线| 91视频在线观看| 欧美日韩亚洲综合一区| 欧美一区二区黄| 久久日韩粉嫩一区二区三区| 国产欧美日韩另类一区| 亚洲免费色视频| 日韩激情视频在线观看| 国产精品综合视频| 91在线视频观看| 4438x成人网最大色成网站| 51精品国自产在线| 国产欧美中文在线| 亚洲日本在线a| 午夜欧美一区二区三区在线播放| 久久精品国产一区二区三| 成人在线综合网站| 欧美在线制服丝袜| 精品国偷自产国产一区| 国产精品三级视频| 日韩制服丝袜av| 日本伊人色综合网| 99久久精品99国产精品 | 国产精品入口麻豆九色| 亚洲综合视频在线观看| 精品一区二区免费在线观看| 不卡一区二区三区四区| 欧美福利一区二区| 久久亚洲精华国产精华液| 五月天一区二区| 福利一区二区在线| 欧美一区二区三区免费观看视频 | 国产精品一线二线三线精华| 在线影视一区二区三区| 久久久久久电影| 偷拍一区二区三区四区| 国产成人在线色| 欧美一区二区成人| 中文字幕一区二区三区在线不卡| 石原莉奈一区二区三区在线观看| 国产自产v一区二区三区c| 欧美天天综合网| 国产精品国产三级国产普通话99| 捆绑调教一区二区三区| 在线视频一区二区三| 国产欧美日韩在线看| 久久精品国内一区二区三区| 欧洲精品一区二区三区在线观看| 久久精品一区二区三区不卡牛牛| 一区二区国产盗摄色噜噜| 色婷婷综合久久久久中文| 中文字幕av不卡| 国产精品自拍在线| 精品不卡在线视频| 日欧美一区二区| 欧美日韩视频在线观看一区二区三区 | 666欧美在线视频| 亚洲精品乱码久久久久| 成人av动漫在线| 国产欧美日韩激情| 精品一区二区三区在线观看| 欧美日韩一区视频| 亚洲品质自拍视频| 色妞www精品视频| 亚洲婷婷在线视频| 91在线观看美女| 综合久久国产九一剧情麻豆| 成人美女在线视频| 国产女人18水真多18精品一级做| 美女视频黄久久| 国产校园另类小说区| 国产精品18久久久久久vr| 精品日韩在线一区| 久久91精品国产91久久小草| 日韩美女在线视频| 精品一区二区av| 久久精品一区二区三区不卡| 国产综合成人久久大片91| 久久蜜桃一区二区| 成人免费视频一区| 中文字幕二三区不卡| www.在线成人| 亚洲精品网站在线观看| 一本色道a无线码一区v| 亚洲国产一区二区三区| 91.com在线观看| 久久99久久久久久久久久久|