用来在地图上做操作GIS,在地图上做标记

源代码在线查看: control.js

软件大小: 1302 K
上传用户: woainijiajia123
关键词: GIS 地图 操作 标记
下载地址: 免注册下载 普通下载 VIP

相关代码

				/* 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 				     * {} 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 				     * {} 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 - {} 				     */				    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 - {} 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 - {}				     */				    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;							

相关资源