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

📄 panzoom.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. *//** * @requires OpenLayers/Control.js * * Class: OpenLayers.PanZoom *  * Inherits from: *  - <OpenLayers.Control> */OpenLayers.Control.PanZoom = OpenLayers.Class(OpenLayers.Control, {    /**      * APIProperty: slideFactor     * {Integer}     */    slideFactor: 50,    /**      * Property: buttons     * {Array(DOMElement)} Array of Button Divs      */    buttons: null,    /**      * Property: position     * {<OpenLayers.Pixel>}      */    position: null,    /**     * Constructor: OpenLayers.Control.PanZoom     *      * Parameters:     * options - {Object}     */    initialize: function(options) {        this.position = new OpenLayers.Pixel(OpenLayers.Control.PanZoom.X,                                             OpenLayers.Control.PanZoom.Y);        OpenLayers.Control.prototype.initialize.apply(this, arguments);    },    /**     * APIMethod: destroy     */    destroy: function() {        OpenLayers.Control.prototype.destroy.apply(this, arguments);        while(this.buttons.length) {            var btn = this.buttons.shift();            btn.map = null;            OpenLayers.Event.stopObservingElement(btn);        }        this.buttons = null;        this.position = null;    },    /**     * Method: draw     *     * Parameters:     * px - {<OpenLayers.Pixel>}      *      * Returns:     * {DOMElement} A reference to the container div for the PanZoom control.     */    draw: function(px) {        // initialize our internal div        OpenLayers.Control.prototype.draw.apply(this, arguments);        px = this.position;        // place the controls        this.buttons = [];        var sz = new OpenLayers.Size(18,18);        var centered = new OpenLayers.Pixel(px.x+sz.w/2, px.y);        this._addButton("panup", "north-mini.png", centered, sz);        px.y = centered.y+sz.h;        this._addButton("panleft", "west-mini.png", px, sz);        this._addButton("panright", "east-mini.png", px.add(sz.w, 0), sz);        this._addButton("pandown", "south-mini.png",                         centered.add(0, sz.h*2), sz);        this._addButton("zoomin", "zoom-plus-mini.png",                         centered.add(0, sz.h*3+5), sz);        this._addButton("zoomworld", "zoom-world-mini.png",                         centered.add(0, sz.h*4+5), sz);        this._addButton("zoomout", "zoom-minus-mini.png",                         centered.add(0, sz.h*5+5), sz);        return this.div;    },        /**     * Method: _addButton     *      * Parameters:     * id - {String}      * img - {String}      * xy - {<OpenLayers.Pixel>}      * sz - {<OpenLayers.Size>}      *      * Returns:     * {DOMElement} A Div (an alphaImageDiv, to be precise) that contains the     *     image of the button, and has all the proper event handlers set.     */    _addButton:function(id, img, xy, sz) {        var imgLocation = OpenLayers.Util.getImagesLocation() + img;        var btn = OpenLayers.Util.createAlphaImageDiv(                                    "OpenLayers_Control_PanZoom_" + id,                                     xy, sz, imgLocation, "absolute");        //we want to add the outer div        this.div.appendChild(btn);        OpenLayers.Event.observe(btn, "mousedown",             OpenLayers.Function.bindAsEventListener(this.buttonDown, btn));        OpenLayers.Event.observe(btn, "dblclick",             OpenLayers.Function.bindAsEventListener(this.doubleClick, btn));        OpenLayers.Event.observe(btn, "click",             OpenLayers.Function.bindAsEventListener(this.doubleClick, btn));        btn.action = id;        btn.map = this.map;        btn.slideFactor = this.slideFactor;        //we want to remember/reference the outer div        this.buttons.push(btn);        return btn;    },        /**     * Method: doubleClick     *     * Parameters:     * evt - {Event}      *     * Returns:     * {Boolean}     */    doubleClick: function (evt) {        OpenLayers.Event.stop(evt);        return false;    },        /**     * Method: buttonDown     *     * Parameters:     * evt - {Event}      */    buttonDown: function (evt) {        if (!OpenLayers.Event.isLeftClick(evt)) return;        switch (this.action) {            case "panup":                 this.map.pan(0, -50);                break;            case "pandown":                 this.map.pan(0, 50);                break;            case "panleft":                 this.map.pan(-50, 0);                break;            case "panright":                 this.map.pan(50, 0);                break;            case "zoomin":                 this.map.zoomIn();                 break;            case "zoomout":                 this.map.zoomOut();                 break;            case "zoomworld":                 this.map.zoomToMaxExtent();                 break;        }        OpenLayers.Event.stop(evt);    },    CLASS_NAME: "OpenLayers.Control.PanZoom"});/** * Constant: X * {Integer} */OpenLayers.Control.PanZoom.X = 4;/** * Constant: Y * {Integer} */OpenLayers.Control.PanZoom.Y = 4;

⌨️ 快捷键说明

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