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

📄 control.js

📁 用来在地图上做操作GIS,在地图上做标记
💻 JS
字号:
/* 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. *//** * Class: OpenLayers.Control * Controls affect the display or behavior of the map. They allow everything * from panning and zooming to displaying a scale indicator. Controls by  * default are added to the map they are contained within however it is * possible to add a control to an external div by passing the div in the * options parameter. *  * Example: * The following example shows how to add many of the common controls * to a map. *  * > var map = new OpenLayers.Map('map', { controls: [] }); * > * > map.addControl(new OpenLayers.Control.PanZoomBar()); * > map.addControl(new OpenLayers.Control.MouseToolbar()); * > map.addControl(new OpenLayers.Control.LayerSwitcher({'ascending':false})); * > map.addControl(new OpenLayers.Control.Permalink()); * > map.addControl(new OpenLayers.Control.Permalink('permalink')); * > map.addControl(new OpenLayers.Control.MousePosition()); * > map.addControl(new OpenLayers.Control.OverviewMap()); * > map.addControl(new OpenLayers.Control.KeyboardDefaults()); * * The next code fragment is a quick example of how to intercept  * shift-mouse click to display the extent of the bounding box * dragged out by the user.  Usually controls are not created * in exactly this manner.  See the source for a more complete  * example: * * > var control = new OpenLayers.Control(); * > OpenLayers.Util.extend(control, { * >     draw: function () { * >         // this Handler.Box will intercept the shift-mousedown * >         // before Control.MouseDefault gets to see it * >         this.box = new OpenLayers.Handler.Box( control,  * >             {"done": this.notice}, * >             {keyMask: OpenLayers.Handler.MOD_SHIFT}); * >         this.box.activate(); * >     }, * > * >     notice: function (bounds) { * >         alert(bounds); * >     } * > });  * > map.addControl(control); *  */OpenLayers.Control = OpenLayers.Class({    /**      * Property: id      * {String}      */    id: null,        /**      * Property: map      * {<OpenLayers.Map>} this gets set in the addControl() function in     * OpenLayers.Map      */    map: null,    /**      * Property: div      * {DOMElement}      */    div: null,    /**      * Property: type      * {OpenLayers.Control.TYPES} Controls can have a 'type'. The type     * determines the type of interactions which are possible with them when     * they are placed into a toolbar.      */    type: null,     /**      * Property: displayClass      * {string}  This property is used for CSS related to the drawing of the     * Control.      */    displayClass: "",    /**      * Property: active      * {boolean} null     */    active: null,    /**      * Property: handler      * {<OpenLayers.Handler>} null     */    handler: null,    /**     * Constructor: OpenLayers.Control     * Create an OpenLayers Control.  The options passed as a parameter     * directly extend the control.  For example passing the following:     *      * > var control = new OpenLayers.Control({div: myDiv});     *     * Overrides the default div attribute value of null.     *      * Parameters:     * options - {Object}      */    initialize: function (options) {        // We do this before the extend so that instances can override        // className in options.        this.displayClass =             this.CLASS_NAME.replace("OpenLayers.", "ol").replace(/\./g, "");                OpenLayers.Util.extend(this, options);                this.id = OpenLayers.Util.createUniqueID(this.CLASS_NAME + "_");    },    /**     * Method: destroy     * The destroy method is used to perform any clean up before the control     * is dereferenced.  Typically this is where event listeners are removed     * to prevent memory leaks.     */    destroy: function () {        // eliminate circular references        if (this.handler) {            this.handler.destroy();        }            this.map = null;    },    /**      * Method: setMap     * Set the map property for the control. This is done through an accessor     * so that subclasses can override this and take special action once      * they have their map variable set.      *     * Parameters:     * map - {<OpenLayers.Map>}      */    setMap: function(map) {        this.map = map;        if (this.handler) {            this.handler.setMap(map);        }    },      /**     * Method: draw     * The draw method is called when the control is ready to be displayed     * on the page.  If a div has not been created one is created.  Controls     * with a visual component will almost always want to override this method      * to customize the look of control.      *     * Parameters:     * px - {<OpenLayers.Pixel>} The top-left pixel position of the control     *      or null.     *     * Returns:     * {DOMElement} A reference to the DIV DOMElement containing the control     */    draw: function (px) {        if (this.div == null) {            this.div = OpenLayers.Util.createDiv();            this.div.id = this.id;            this.div.className = this.displayClass;        }        if (px != null) {            this.position = px.clone();        }        this.moveTo(this.position);                return this.div;    },    /**     * Method: moveTo     * Sets the left and top style attributes to the passed in pixel      * coordinates.     *     * Parameters:     * px - {<OpenLayers.Pixel>}     */    moveTo: function (px) {        if ((px != null) && (this.div != null)) {            this.div.style.left = px.x + "px";            this.div.style.top = px.y + "px";        }    },    /**     * Method: activate     * Explicitly activates a control and it's associated     * handler if one has been set.  Controls can be     * deactivated by calling the deactivate() method.     *      * Returns:     * {Boolean}  True if the control was successfully activated or     *            false if the control was already active.     */    activate: function () {        if (this.active) {            return false;        }        if (this.handler) {            this.handler.activate();        }        this.active = true;        return true;    },        /**     * Method: deactivate     * Deactivates a control and it's associated handler if any.  The exact     * effect of this depends on the control itself.     *      * Returns:     * {Boolean} True if the control was effectively deactivated or false     *           if the control was already inactive.     */    deactivate: function () {        if (this.active) {            if (this.handler) {                this.handler.deactivate();            }            this.active = false;            return true;        }        return false;    },    CLASS_NAME: "OpenLayers.Control"});OpenLayers.Control.TYPE_BUTTON = 1;OpenLayers.Control.TYPE_TOGGLE = 2;OpenLayers.Control.TYPE_TOOL   = 3;

⌨️ 快捷键说明

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