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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mapwindow.java

?? java+mapxtreme 開發校園房管系統
?? JAVA
字號:
package com.oyc.mapxtreme.applet;

import java.awt.Cursor;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;

/**
 * 顯示地圖的畫布
 * @author 三峽大學理學院 歐陽超
 *
 */
public class MapWindow extends MapCanvas implements MouseListener, MouseMotionListener {
	
	//地圖servlet路徑
	private String m_servletName = null;
	
	//工具參數: 放大,縮小,平移,測距離,信息訪問,范圍查詢
	private int m_tool = 0;
	private final int ZOOM_IN_TOOL = 1;
	private final int ZOOM_OUT_TOOL = 2;
	private final int PAN_TOOL = 3;
	private final int DISTANCE_TOOL = 4;
	private final int INFO_TOOL = 5;
	private final int SEARCH_INRADIUS_TOOL = 6;
	
	//鼠標拖動起點,終點,拖動寬度,高度
	private int dragX1, dragY1, dragX2, dragY2, dragWidth, dragHeight;
	
	//鼠標某次移動的坐標
	private int moveX1, moveY1, moveX2, moveY2;

	//標記當前鼠標是否在拖動
	private boolean m_Dragged = false;
	//標記當前鼠標是否單擊過
	private boolean m_Clicked = false;
	
	//url變量,每次請求地圖servlet時,重新給它賦值
	private String url = null;
	
	//視野變量
	private double zoom;
	
	//測距:總距離,測量次數
	private int totalDis = 0;
	private int disNum = 0;
	
	/**
	 * 構造器
	 * @param applet
	 * @param width  地圖寬度
	 * @param height 地圖高度
	 */
	public MapWindow(MainApplet applet, String servletName, int width, int height){
		super(applet, width, height);
		this.m_servletName = servletName;
		
		//注冊監聽器
		this.addMouseListener(this);
		this.addMouseMotionListener(this);
	}
	
	/**
	 * 設置當前命令工具
	 * @param tool
	 */
	public void setCommandTool(int tool){
		this.m_tool = tool;
	}

	public void mouseEntered(MouseEvent e) {
		// TODO Auto-generated method stub
		if (m_tool==ZOOM_IN_TOOL || m_tool==ZOOM_OUT_TOOL || m_tool==DISTANCE_TOOL || m_tool==SEARCH_INRADIUS_TOOL) {
			this.setCursor(new Cursor(Cursor.CROSSHAIR_CURSOR));
		} else if (m_tool == PAN_TOOL) {
			this.setCursor(new Cursor(Cursor.MOVE_CURSOR));
		} else if (m_tool == INFO_TOOL) {
			this.setCursor(new Cursor(Cursor.HAND_CURSOR));
		}
	}

	public void mouseExited(MouseEvent e) {
		// TODO Auto-generated method stub
		this.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
		super.clear();  //更新畫布,去掉標簽
		super.repaint();
	}

	public void mousePressed(MouseEvent e) {
		// TODO Auto-generated method stub
		if (this.m_tool == 0) { // 如果沒有選擇工具,則不處理
			return;
		}
		this.m_Dragged = false;
		this.dragX1 = e.getX();
		this.dragY1 = e.getY();
	}

	public void mouseReleased(MouseEvent e) {
		// TODO Auto-generated method stub
		if (this.m_tool == 0) { //如果沒有選擇工具,則不處理
			return;
		}
		
		//放大地圖
		if(this.m_tool == ZOOM_IN_TOOL){
			if(this.m_Dragged){ //拖動放大
				//計算區域中心坐標
				int a = dragX1 + dragWidth / 2;
				int b = dragY1 + dragHeight / 2;
				
				if(Math.abs(dragWidth) > Math.abs(dragHeight)){
					zoom = Math.abs(dragWidth) * MapState.getCurZoom() / super.width;
				}else{
					zoom = Math.abs(dragHeight) * MapState.getCurZoom() / super.height;
				}
				url = m_servletName + "?method=zoom";
				url += "&ptx=" + a;
				url += "&pty=" + b;
				url += "&zoom=" + zoom;
				this.applet.adjustMapBySelf(url);
				
			}else{  //單擊放大
				zoom = MapState.getCurZoom() / 2.0;
				url = m_servletName + "?method=zoom";
				url += "&ptx=" + dragX1;
				url += "&pty=" + dragY1;
				url += "&zoom=" + zoom;
				this.applet.adjustMapBySelf(url);
			}
			this.m_Dragged = false; //更改拖動標識狀態
			MapState.setCurZoom(zoom);  //更新地圖狀態
		}
		
		//縮小地圖
		if(this.m_tool == ZOOM_OUT_TOOL){
			if(this.m_Dragged){ //拖動縮小
				//計算區域中心坐標
				int a = dragX1 + dragWidth / 2;
				int b = dragY1 + dragHeight / 2;
				
				if(Math.abs(dragWidth) > Math.abs(dragHeight)){
					zoom = super.height * MapState.getCurZoom() / Math.abs(dragHeight);
				}else{
					zoom = super.width * MapState.getCurZoom() / Math.abs(dragWidth);
				}
				url = m_servletName + "?method=zoom";
				url += "&ptx=" + a;
				url += "&pty=" + b;
				url += "&zoom=" + zoom;
				this.applet.adjustMapBySelf(url);
				
			}else{  //單擊縮小
				zoom = MapState.getCurZoom() * 2.0;
				url = m_servletName + "?method=zoom";
				url += "&ptx=" + dragX1;
				url += "&pty=" + dragY1;
				url += "&zoom=" + zoom;
				this.applet.adjustMapBySelf(url);
			}
			this.m_Dragged = false; //更改拖動標識狀態
			MapState.setCurZoom(zoom);  //更新地圖狀態
		}
		
		//平移地圖
		if (this.m_tool == PAN_TOOL){
			if (this.m_Dragged){ //拖動平移
				//計算請求的中心坐標
				int a = width/2 - dragWidth;
				int b = height/2 - dragHeight;
				
				url = m_servletName + "?method=pan";
				url += "&ptx=" + a;
				url += "&pty=" + b;
				this.applet.adjustMapBySelf(url);
				
				this.m_Dragged = false; //更改拖動標識狀態
			}
		}
		
		//范圍查詢
		if(this.m_tool == SEARCH_INRADIUS_TOOL){
			//計算半徑
			int w = Math.abs(dragWidth);
			int h = Math.abs(dragHeight);
			int radius = (int)Math.sqrt(w*w + h*h);
			this.applet.invokeJavascript("searchInRadius("+dragX1+","+dragY1+","+radius+")");
		}
	}

	public void mouseDragged(MouseEvent e) {
		// TODO Auto-generated method stub
		if (this.m_tool == 0) { //如果沒有選擇工具,則不處理
			return;
		}
		this.m_Dragged = true; //標識當前鼠標在拖動
		
		//當前坐標及拖動的距離
		dragX2 = e.getX();
		dragY2 = e.getY();
		dragWidth = dragX2 - dragX1;
		dragHeight = dragY2 - dragY1;
		
		//放大或縮小
		if(this.m_tool == ZOOM_IN_TOOL || this.m_tool == ZOOM_OUT_TOOL){
			if(dragHeight >= 0){ //正拖鼠標
				if(this.m_tool == ZOOM_IN_TOOL){
					super.drawRect(dragX1, dragY1, dragWidth, dragHeight);
				}else{
					super.drawRect(dragX1, dragY1, dragWidth, dragHeight);
				}
			}else{ //反拖鼠標
				if(this.m_tool == ZOOM_IN_TOOL){
					super.drawRect(dragX2, dragY2, Math.abs(dragWidth), Math.abs(dragHeight));
				}else{
					super.drawRect(dragX2, dragY2, Math.abs(dragWidth), Math.abs(dragHeight));
				}
			}
		}
		
		//平移
		if(this.m_tool == PAN_TOOL){
			super.panMap(dragWidth, dragHeight);
		}
		
		//綜合查詢,畫圓
		if(this.m_tool == SEARCH_INRADIUS_TOOL){
			int w = Math.abs(dragWidth);
			int h = Math.abs(dragHeight);
			int radius = (int)Math.sqrt(w*w + h*h);
			super.drawOval(dragX1-radius, dragY1-radius, radius);
		}
	}
	
	public void mouseClicked(MouseEvent e) {
		// TODO Auto-generated method stub
		if(this.m_tool==DISTANCE_TOOL){  //測距
			if(e.getClickCount() == 2){  //雙擊時,結束畫直線
				this.m_Clicked = false;
				this.disNum = 0;
				this.totalDis = 0;
				super.clear();
				return ;
			}
			if(this.m_Clicked){  //已經單擊過,畫直線
				super.drawLine(moveX1, moveY1, moveX2, moveY2, true, true, "測距量", 44, 18);
				this.disNum ++;
				this.countDistance(moveX1, moveY1, moveX2, moveY2);
			}else{  //第一次單擊
				this.m_Clicked = true;
			}
		}
		//當前坐標
		moveX1 = e.getX();
		moveY1 = e.getY();
		
		if(this.m_tool == INFO_TOOL){  //信息訪問
			this.applet.invokeJavascript("showInfo("+ moveX1 +","+ moveY1 +")");
		}
	}

	public void mouseMoved(MouseEvent e) {
		// TODO Auto-generated method stub
		//當前坐標
		moveX2 = e.getX();
		moveY2 = e.getY();
		
		//在鼠標旁邊畫一個標簽,顯示當前狀態
		if(this.m_tool == ZOOM_IN_TOOL){
			super.drawLabel(moveX2, moveY2, 35, 18, "放大");
		}
		if(this.m_tool == ZOOM_OUT_TOOL){
			super.drawLabel(moveX2, moveY2, 35, 18, "縮小");
		}
		if(this.m_tool == DISTANCE_TOOL){
			super.drawLabel(moveX2, moveY2, 44, 18, "測距離");
		}
		if(this.m_tool == SEARCH_INRADIUS_TOOL){
			super.drawLabel(moveX2, moveY2, 58, 18, "范圍查找");
		}
		
		//測距,畫直線
		if(this.m_tool==DISTANCE_TOOL && this.m_Clicked){
			super.drawLine(moveX1, moveY1, moveX2, moveY2, true, false, "測距量", 44, 18);
		}
	}
	
	/**
	 * 測距離
	 * @param x1
	 * @param y1
	 * @param x2
	 * @param y2
	 */
	private void countDistance(int x1, int y1, int x2, int y2){
		int a = Math.abs(x2 - x1);
		int b = Math.abs(y2 - y1);
		double c = Math.sqrt(a*a + b*b);
		int curDis = (int) ((MapState.getCurZoom() * c / super.width) * 1000);
		this.totalDis += curDis;
		this.applet.invokeJavascript("countDistance("+ this.disNum +","+ curDis +","+ this.totalDis +")");
	}

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线日韩av片| 久久成人羞羞网站| 国产精品婷婷午夜在线观看| 日韩精品一区二区三区三区免费| 欧美三级电影网站| 欧美艳星brazzers| 在线视频欧美精品| 欧美日韩激情在线| 91精品国产欧美一区二区| 制服丝袜亚洲播放| 久久影视一区二区| 久久久久久久综合日本| 国产精品久久久久毛片软件| 日韩一区欧美小说| 亚洲影院理伦片| 色婷婷av一区二区三区大白胸| 中文字幕欧美一| 92国产精品观看| 在线观看国产91| 欧美高清激情brazzers| 51精品国自产在线| 久久久精品综合| 亚洲色图一区二区三区| 亚洲国产精品天堂| 精品一区二区在线免费观看| 国产成人av影院| 欧美色电影在线| 久久免费视频一区| 亚洲444eee在线观看| 国产一区在线精品| 欧美图区在线视频| 国产日韩欧美一区二区三区综合 | 中文字幕乱码日本亚洲一区二区 | 国产午夜精品理论片a级大结局| 欧美国产乱子伦| 亚洲va在线va天堂| 成人av在线播放网站| 欧美性受极品xxxx喷水| 久久久久久久久97黄色工厂| 亚洲一级二级三级在线免费观看| 精品影院一区二区久久久| 99久久婷婷国产综合精品| 日韩一区二区电影| 椎名由奈av一区二区三区| 美女高潮久久久| 91蜜桃免费观看视频| 精品国产伦一区二区三区观看方式 | 亚洲国产精品精华液ab| 亚洲激情在线激情| 国产精品1区2区3区在线观看| 99久久综合国产精品| 久久综合色一综合色88| 亚洲国产va精品久久久不卡综合 | 亚洲成av人片在线观看| 在线观看一区日韩| 日本一区二区三区视频视频| 香蕉成人伊视频在线观看| 99麻豆久久久国产精品免费| 久久综合色之久久综合| 午夜精品久久久久久久蜜桃app| thepron国产精品| 久久久久国产精品麻豆| 久久99国产精品麻豆| 欧美日韩三级一区二区| 一区二区在线观看免费| 本田岬高潮一区二区三区| 久久亚洲精品国产精品紫薇| 美女一区二区视频| 欧美一区二区成人| 日韩中文字幕不卡| 欧美日本一区二区三区四区| 一区二区三区在线免费播放| 91黄色激情网站| 亚洲乱码国产乱码精品精小说 | 91麻豆免费看片| 中文字幕第一区二区| 国产福利一区在线观看| 精品国产乱码久久久久久蜜臀 | 人妖欧美一区二区| 9191成人精品久久| 蜜臀av性久久久久蜜臀aⅴ | 国产精品久久久久久久久免费桃花 | 一区二区三区四区中文字幕| 91女厕偷拍女厕偷拍高清| 中文字幕在线免费不卡| 色综合天天综合狠狠| 一区二区三区中文字幕在线观看| 91精品1区2区| 男人操女人的视频在线观看欧美| 日韩欧美高清dvd碟片| 国产乱国产乱300精品| 国产精品的网站| 欧美日韩在线免费视频| 奇米影视在线99精品| 久久色.com| 一道本成人在线| 免费在线看成人av| 久久九九影视网| 一本色道久久综合狠狠躁的推荐| 18成人在线视频| 在线成人午夜影院| 精品一区精品二区高清| 中文字幕电影一区| 欧美日韩aaa| 国产精品亚洲一区二区三区在线| 欧美国产97人人爽人人喊| 91黄色免费网站| 精品在线免费观看| 日韩毛片在线免费观看| 欧美乱熟臀69xxxxxx| 国产美女精品人人做人人爽| 亚洲天天做日日做天天谢日日欢 | 欧美精品丝袜中出| 国产精品一区一区三区| 亚洲图片一区二区| 国产午夜精品一区二区三区四区| 色婷婷综合激情| 蜜臀av一区二区在线观看| 亚洲视频免费在线观看| 日韩一区二区不卡| 欧美综合天天夜夜久久| 国产成人一级电影| 视频一区二区国产| 亚洲天堂2016| 欧美国产一区视频在线观看| 久久久精品综合| 欧美蜜桃一区二区三区| 国产精品综合网| 免费观看在线色综合| 亚洲一区二区三区视频在线| 欧美高清在线视频| 欧美v日韩v国产v| 欧美日韩国产精品成人| www.色精品| 国产精品亚洲一区二区三区在线| 午夜精品福利一区二区三区蜜桃| 国产精品三级久久久久三级| 欧美一区二区三区不卡| 成年人国产精品| 成人午夜视频福利| 国产毛片精品视频| 久久99日本精品| 日韩高清不卡一区二区| 一区二区三区在线不卡| 亚洲女人小视频在线观看| 国产精品久久久久久久久果冻传媒| 精品国产乱码久久| 欧美成人三级在线| 日韩欧美中文字幕精品| 欧美一三区三区四区免费在线看| 欧美日韩成人一区| 在线综合+亚洲+欧美中文字幕| 欧洲精品一区二区| 欧美色老头old∨ideo| 欧美精品一二三| 欧美猛男男办公室激情| 欧美三级三级三级爽爽爽| 日本道免费精品一区二区三区| 91在线视频官网| 欧洲av一区二区嗯嗯嗯啊| 色婷婷综合激情| 欧美久久一二三四区| 5月丁香婷婷综合| 精品国产一区久久| 久久久久九九视频| 最新久久zyz资源站| 亚洲精品国产a| 日韩国产欧美在线视频| 日韩av不卡在线观看| 另类调教123区| 成人av免费网站| 在线视频你懂得一区| 91精品国产综合久久精品app| 欧美一卡二卡在线| 精品91自产拍在线观看一区| 国产欧美综合在线观看第十页 | 亚洲免费观看高清完整| 亚洲国产精品自拍| 久久国产精品99久久人人澡| 国产精品一区二区久久不卡| 99久久久无码国产精品| 欧美日韩精品专区| 久久精子c满五个校花| 亚洲精品视频免费观看| 麻豆高清免费国产一区| 成人免费高清视频在线观看| 色欧美88888久久久久久影院| 欧美成人综合网站| 亚洲免费色视频| 久久成人羞羞网站| 91久久一区二区| 2022国产精品视频| 亚洲一区日韩精品中文字幕| 精品夜夜嗨av一区二区三区| 99精品国产视频| 久久综合网色—综合色88| 亚洲综合另类小说| 高清视频一区二区| 91精品国产色综合久久| 亚洲欧美电影一区二区|