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

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

?? navmousemode2.java

?? openmap java寫的開源數(shù)字地圖程序. 用applet實(shí)現(xiàn),可以像google map 那樣放大縮小地圖.
?? JAVA
字號:
// **********************************************************************// // <copyright>// //  BBN Technologies//  10 Moulton Street//  Cambridge, MA 02138//  (617) 873-8000// //  Copyright (C) BBNT Solutions LLC. All rights reserved.// // </copyright>// **********************************************************************// // $Source: /cvs/distapps/openmap/src/openmap/com/bbn/openmap/event/NavMouseMode2.java,v $// $RCSfile: NavMouseMode2.java,v $// $Revision: 1.5.2.3 $// $Date: 2005/08/09 17:38:50 $// $Author: dietrick $// // **********************************************************************package com.bbn.openmap.event;import java.awt.Graphics;import java.awt.Point;import java.awt.event.MouseEvent;import com.bbn.openmap.LatLonPoint;import com.bbn.openmap.MapBean;import com.bbn.openmap.proj.Proj;import com.bbn.openmap.proj.Projection;import com.bbn.openmap.util.Debug;/** * The Navigation Mouse Mode interprets mouse clicks and mouse drags * to recenter and rescale the map. The map is centered on the * location where a click occurs. The difference between this * MouseMode and the original NavMouseMode is that the box drawn is * interpreted differently. The point where the mouse is pressed is * interpreted to be the center of the new zoom area (instead of one * of the corners), and the dragged mouse point is the edge of the * box, reflected equally on the other side of the center point. *  * <p> * You MUST add this MouseMode as a ProjectionListener to the MapBean * to get it to work. If you use a MouseDelegator with the bean, it * will take care of that for you. */public class NavMouseMode2 extends NavMouseMode {    /**     * Construct a NavMouseMode2. Sets the ID of the mode to the     * modeID, the consume mode to true, and the cursor to the     * crosshair.     */    public NavMouseMode2() {        this(true);    }    /**     * Construct a NavMouseMode2. Lets you set the consume mode. If     * the events are consumed, then a MouseEvent is sent only to the     * first MapMouseListener that successfully processes the event.     * If they are not consumed, then all of the listeners get a     * chance to act on the event.     *      * @param shouldConsumeEvents the mode setting.     */    public NavMouseMode2(boolean shouldConsumeEvents) {        super(shouldConsumeEvents);    }    /**     * Handle a mouseReleased MouseListener event. If there was no     * drag events, or if there was only a small amount of dragging     * between the occurence of the mousePressed and this event, then     * recenter the map. Otherwise we get the second corner of the     * navigation rectangle and try to figure out the best scale and     * location to zoom in to based on that rectangle.     *      * @param e MouseEvent to be handled     */    public void mouseReleased(MouseEvent e) {        if (Debug.debugging("mousemode")) {            Debug.output(getID() + "|NavMouseMode2.mouseReleased()");        }        Object obj = e.getSource();        if (!mouseSupport.fireMapMouseReleased(e)) {            if (!(obj instanceof MapBean) || !autoZoom || point1 == null)                return;            MapBean map = (MapBean) obj;            Projection projection = map.getProjection();            Proj p = (Proj) projection;            synchronized (this) {                point2 = e.getPoint();                int dx = Math.abs(point2.x - point1.x);                int dy = Math.abs(point2.y - point1.y);                // Dont bother redrawing if the rectangle is too small                if ((dx < 5) || (dy < 5)) {                    // clean up the rectangle, since point2 has the                    // old value.                    paintRectangle(map, point1, point2);                    // If rectangle is too small in both x and y then                    // recenter the map                    if ((dx < 5) && (dy < 5)) {                        LatLonPoint llp = projection.inverse(e.getPoint());                        boolean shift = e.isShiftDown();                        boolean control = e.isControlDown();                        if (control) {                            if (shift) {                                p.setScale(p.getScale() * 2.0f);                            } else {                                p.setScale(p.getScale() / 2.0f);                            }                        }                        // reset the points here so the point doesn't                        // get rendered on the repaint.                        point1 = null;                        point2 = null;                        p.setCenter(llp);                        map.setProjection(p);                    }                    return;                }                // Figure out the new scale                dx = Math.abs(point2.x - point1.x);                dy = Math.abs(point2.y - point1.y);                // cornerPoint 1 should be the upper left.                Point cornerPoint1 = new Point(point2.x < point1.x ? point2.x                        : point1.x, point2.y < point1.y ? point2.y : point1.y);                Point cornerPoint2 = new Point(cornerPoint1.x + 2 * dx, cornerPoint1.y                        + 2 * dy);                float newScale = com.bbn.openmap.proj.ProjMath.getScale(cornerPoint1,                        cornerPoint2,                        projection);                // Figure out the center of the rectangle                com.bbn.openmap.LatLonPoint center = projection.inverse(point1.x,                        point1.y);                // Set the parameters of the projection and then set                // the projection of the map. This way we save having                // the MapBean fire two ProjectionEvents.                p.setScale(newScale);                p.setCenter(center);                // reset the points so they don't show up in the                // listener paint.                point1 = null;                point2 = null;                map.setProjection(p);            }        }    }    // Mouse Motion Listener events    ///////////////////////////////    /**     * Draws or erases boxes between two screen pixel points. The     * graphics from the map is set to XOR mode, and this method uses     * two colors to make the box disappear if on has been drawn at     * these coordinates, and the box to appear if it hasn't.     *      * @param pt1 one corner of the box to drawn, in window pixel     *        coordinates.     * @param pt2 the opposite corner of the box.     */    protected void paintRectangle(Graphics g, Point pt1, Point pt2) {        g.setXORMode(java.awt.Color.lightGray);        g.setColor(java.awt.Color.darkGray);        if (pt1 != null && pt2 != null) {            int width = Math.abs(pt2.x - pt1.x);            int height = Math.abs(pt2.y - pt1.y);            if (width == 0)                width++;            if (height == 0)                height++;            g.drawRect(pt1.x - width, pt1.y - height, width * 2, height * 2);            g.drawRect(pt1.x - 1, pt1.y - 1, 3, 3);        }    }}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产不卡视频一区| 一区二区三区欧美视频| 国产乱色国产精品免费视频| 日韩精品一区二区三区四区 | 亚洲综合精品自拍| 国产成人自拍网| 国产精品污污网站在线观看| 99天天综合性| 亚洲免费伊人电影| 欧美日本不卡视频| 免费成人在线观看| 久久先锋资源网| 99久久er热在这里只有精品15| 一区二区三区中文在线| 欧美一区二视频| 国产电影精品久久禁18| 亚洲人吸女人奶水| 欧美电影一区二区三区| 国产精品一级黄| 亚洲美女精品一区| 日韩丝袜美女视频| 成人av电影免费观看| 亚洲高清免费观看高清完整版在线观看| 欧美精品三级在线观看| 国产精品亚洲专一区二区三区 | 另类小说色综合网站| 亚洲精品在线免费播放| 国产成人小视频| 樱桃国产成人精品视频| 欧美va在线播放| 成人高清免费观看| 日韩黄色免费电影| 国产精品免费免费| 欧美日本在线播放| 成人av先锋影音| 日韩精品1区2区3区| 中文字幕在线观看一区| 91精品国模一区二区三区| 成人黄色在线网站| 麻豆极品一区二区三区| 亚洲另类在线制服丝袜| 精品国偷自产国产一区| 色香蕉久久蜜桃| 国产一区二区不卡在线| 性做久久久久久久免费看| 中文欧美字幕免费| 精品国产乱码久久久久久浪潮 | 一本到高清视频免费精品| 久久精品国产99久久6| 日韩精品国产欧美| 最新日韩av在线| 久久一区二区视频| 91麻豆精品国产91久久久久久| 91啦中文在线观看| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 激情五月婷婷综合网| 亚洲综合免费观看高清完整版 | 综合中文字幕亚洲| 欧美成人乱码一区二区三区| 欧亚洲嫩模精品一区三区| 国产一区二区三区在线观看免费 | 精品免费日韩av| 欧美日韩一级片网站| 99久久久国产精品免费蜜臀| 精品一区二区三区香蕉蜜桃| 亚洲国产欧美在线| 亚洲女同ⅹxx女同tv| 国产欧美综合在线观看第十页| 欧美mv日韩mv国产| 欧美一区二区三区不卡| 欧美调教femdomvk| 一本一道久久a久久精品| 成人精品免费看| 国产成人免费视频一区| 国产福利一区二区三区视频| 国产一区不卡在线| 国产一区在线观看视频| 国产一区二区免费视频| 国产精品一级二级三级| 丁香婷婷深情五月亚洲| 东方aⅴ免费观看久久av| 国产成人在线看| 国产成人av一区二区| 成人免费视频国产在线观看| 成人高清视频在线| 一本色道久久综合精品竹菊| 色综合 综合色| 欧美探花视频资源| 欧美日韩夫妻久久| 欧美xxx久久| 久久网这里都是精品| 国产三级久久久| 国产精品三级av| 一区二区三区四区高清精品免费观看 | 日韩欧美电影在线| 26uuu色噜噜精品一区二区| 久久久久国产精品厨房| 国产精品福利一区二区三区| 亚洲欧美日韩电影| 日韩—二三区免费观看av| 蜜臂av日日欢夜夜爽一区| 国内精品不卡在线| av在线一区二区| 在线不卡a资源高清| 精品免费视频.| 国产精品国产a| 日韩成人免费电影| 国产精一品亚洲二区在线视频| 成a人片国产精品| 欧美日韩一级二级| 亚洲精品一区二区精华| 亚洲欧洲色图综合| 日韩av中文在线观看| 国产精品影视在线| 欧美伊人久久大香线蕉综合69 | 精品国产亚洲在线| 中文字幕一区二区三区乱码在线| 亚洲综合一区二区| 精品一区二区综合| 91久久免费观看| 日韩欧美国产综合| 日韩一区在线看| 蜜桃在线一区二区三区| 成人av手机在线观看| 91精品免费在线观看| 中文字幕在线不卡视频| 麻豆国产精品官网| 在线精品国精品国产尤物884a| 精品久久一二三区| 亚洲综合激情小说| 国产.精品.日韩.另类.中文.在线.播放| 欧美曰成人黄网| 国产精品久久久久影院色老大 | 国产91精品在线观看| 欧美三级日韩三级国产三级| 午夜精品福利久久久| 成人污视频在线观看| 精品国产乱码久久久久久夜甘婷婷 | 日韩欧美一区二区在线视频| 色94色欧美sute亚洲13| 成a人片亚洲日本久久| 国产精品99久久久久久久vr| 麻豆一区二区三区| 日本不卡在线视频| 丝袜亚洲另类丝袜在线| 亚洲一区二区av电影| 一区二区三区四区av| 最好看的中文字幕久久| 最新日韩在线视频| 亚洲日本在线观看| 一区二区三区精品在线观看| 亚洲视频香蕉人妖| 亚洲精品国产成人久久av盗摄| 国产精品丝袜黑色高跟| 久久久久亚洲蜜桃| 久久久精品蜜桃| 久久蜜桃av一区二区天堂| 欧美精品一区二区三区视频| 精品国产区一区| 久久久久国产精品人| 国产精品美女久久久久高潮| 国产精品日日摸夜夜摸av| 国产精品久久99| 亚洲欧美怡红院| 亚洲欧美区自拍先锋| 亚洲午夜电影在线观看| 日韩高清不卡在线| 国产伦理精品不卡| 成人激情电影免费在线观看| 色哟哟一区二区三区| 777色狠狠一区二区三区| 日韩欧美资源站| 欧美激情一区二区在线| 亚洲品质自拍视频| 亚洲不卡av一区二区三区| 老司机精品视频一区二区三区| 国产一区二区三区在线观看精品 | 色婷婷综合久色| 欧美日韩成人一区| 亚洲精品一区二区三区99| 亚洲欧美自拍偷拍| 日韩电影在线观看网站| 精品亚洲成a人| 91亚洲精品久久久蜜桃网站| 欧美日韩精品一区二区| 精品久久久久久久久久久久久久久久久| 国产亚洲制服色| 亚洲精品免费看| 精品系列免费在线观看| 91在线porny国产在线看| 制服.丝袜.亚洲.中文.综合| 久久天天做天天爱综合色| 一区二区三区日韩欧美精品| 日本视频一区二区三区| 99免费精品在线观看| 欧美亚洲图片小说| 久久久久久一级片| 日韩影视精彩在线| 91色.com| 久久精品在线观看|