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

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

?? maputil.java

?? 聯(lián)合國農(nóng)糧署牽頭開發(fā)的geonetwork源代碼最新版
?? JAVA
字號:
/** */package org.wfp.vam.intermap.services.map;import java.net.URLDecoder;import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.StringTokenizer;import jeeves.server.UserSession;import jeeves.server.context.ServiceContext;import org.jdom.Element;import org.wfp.vam.intermap.Constants;import org.wfp.vam.intermap.kernel.map.DefaultMapServers;import org.wfp.vam.intermap.kernel.map.MapMerger;import org.wfp.vam.intermap.kernel.map.mapServices.BoundingBox;import org.wfp.vam.intermap.kernel.map.mapServices.MapService;import org.wfp.vam.intermap.kernel.map.mapServices.arcims.ArcIMSService;import org.wfp.vam.intermap.kernel.map.mapServices.wms.WmsGetCapClient;import org.wfp.vam.intermap.kernel.map.mapServices.wms.WmsService;public class MapUtil{	private static int _minh;	private static int _minw;	private static int _maxh;	private static int _maxw;	private static String defaultImageSize;	private static String url;	public static void setImageSizes(int minh, int minw, int maxh, int maxw) {		_minh = minh;		_minw = minw;		_maxh = maxh;		_maxw = maxw;	}	// Returns the MapMerger object for the user session	public static MapMerger getMapMerger(ServiceContext context)	{		MapMerger mm = (MapMerger)context.getUserSession()			.getProperty(Constants.SESSION_MAP);		if (mm == null)			mm = new MapMerger();		return mm;	}	public static void setAoi(ServiceContext context, float minx, float miny, float maxx, float maxy)		throws Exception	{		BoundingBox bb = new BoundingBox(maxy, miny, maxx, minx);		UserSession us = context.getUserSession();		us.setProperty("aoi", bb);	}	protected static BoundingBox getAoi(ServiceContext context)		throws Exception	{		UserSession us = context.getUserSession();		return (BoundingBox)us.getProperty("aoi");	}	protected static void unsetAoi(ServiceContext context)		throws Exception	{		UserSession us = context.getUserSession();		us.setProperty("aoi", new BoundingBox(0, 0, 0, 0)); // there is no way at the moment to set it null or delete it	}	protected static void setActiveLayer(Element request, MapMerger mm)		throws Exception	{		StringTokenizer t = new StringTokenizer(request.getChildText("activeLayer"), "_");		try {			mm.setActiveLayer(Integer.parseInt(t.nextToken()), Integer.parseInt(t.nextToken()));		}		catch (Exception e) {} // Who cares?	}	protected static void setVisibleLayers(Element request, MapMerger mm)	{		for(Element param : (List<Element>)request.getChildren())		{			String key   = param.getName();			String value = param.getText();			StringTokenizer t = new StringTokenizer(key, "_");			if (t.hasMoreTokens()) {				if (t.nextToken().equals("layerVisible")) {					String serviceId = t.nextToken();					String layerId = t.nextToken();					MapService ms = mm.getService(Integer.parseInt(serviceId));					if (ms != null) {						boolean visible = value.equals("true");						ms.setLayerVisible(layerId, visible);					}				}			}		}	}	protected static void setTransparency(Element request, MapMerger mm) {		List layers = request.getChildren();		for (Iterator i = layers.iterator(); i.hasNext(); ) {			Element param = (Element)i.next();			String key = param.getName();			String value = param.getText();			StringTokenizer t = new StringTokenizer(key, "_");			if (t.hasMoreTokens()) {				if (t.nextToken().equals("t")) {					int serviceId = Integer.parseInt(t.nextToken());					try {						float tr = Float.parseFloat(value);						if (tr >= 0 && tr <= 100)							mm.setTransparency(serviceId, Float.parseFloat(value) / 100);					}					catch (Exception e) { }				}			}		}	}	/**	 * @return the id of the service, or -1 if the service has not been added	 */	public static int addService(int serverType, String serverUrl, String serviceName, String vsp, MapMerger mm) throws Exception	{		// Do not add the service if it is already there		for(MapService service: mm.getServices())		{			String url = service.getServerURL();			String name = service.getName();			if (url.equals(serverUrl) && name.equals(serviceName))				return -1;		}		int ret;		switch (serverType)		{			case ArcIMSService.TYPE :				ret = mm.addService(new ArcIMSService(serverUrl, serviceName));				break;			case WmsService.TYPE :				Element capabilities = WmsGetCapClient.getCapabilities(serverUrl);//				Element capabilities = CapabilitiesStore.getCapabilities(serverUrl); NEW VERSION: WORK IN PROGRESS				WmsService s = new WmsService(serverUrl, serviceName, capabilities);				ret = mm.addService(s);				setVendorSpecificParams(s, vsp);				break;			default:				throw new IllegalArgumentException("Unknown serverType " + serverType +												   " for service " + serviceName + " @ " + serverUrl);		}		return ret;	}	private static void setVendorSpecificParams(WmsService service, String params) {		if (params == null) return;		String stParams = URLDecoder.decode(params);		HashMap hmParams = new HashMap();		StringTokenizer t1;		for (t1 = new StringTokenizer(stParams, "&"); t1.hasMoreTokens(); ) {			String s = t1.nextToken();			int p = s.indexOf("=");			if (p != -1) {				String name = s.substring(0, p);//				System.out.println("name:" + name);				String value = s.substring(p + 1, s.length());//				System.out.println("value: " + value);				hmParams.put(name, value);			}		}//		System.out.println("hmParams: " + hmParams);		service.setVendorSpecificParams(hmParams); //TEST	}	public static void setDefaultContext(MapMerger mm) throws Exception	{		Element mapContext = DefaultMapServers.getDefaultContext();		// Add each layer in the map context to the map		for (Element elServer: (List<Element>)mapContext.getChildren("server"))		{			String serverType = elServer.getAttributeValue(Constants.MAP_SERVER_TYPE);			String serverUrl  = elServer.getAttributeValue(Constants.MAP_SERVER_URL);			for (Element elLayer: (List<Element>)elServer.getChildren(Constants.MAP_LAYER))			{				try				{					String serviceName = elLayer.getAttributeValue("name");					MapUtil.addService(Integer.parseInt(serverType), serverUrl, serviceName, "", mm);				}				catch (Exception e) { e.printStackTrace(); } // DEBUG: tell the user			}		}		MapUtil.setDefBoundingBox(mm);	}	public static void setDefBoundingBox(MapMerger mm) throws Exception	{		List<BoundingBox> lbb = new ArrayList<BoundingBox>();		for(MapService service: mm.getServices())			lbb.add( service.getDefBoundingBox() );		mm.setBoundingBox(BoundingBox.union(lbb));	}	protected static void setBBoxFromUrl(String bbox, MapMerger mm) {		StringTokenizer st = new StringTokenizer(bbox, ",");		try {			float w = Float.parseFloat(st.nextToken());			float s = Float.parseFloat(st.nextToken());			float e = Float.parseFloat(st.nextToken());			float n = Float.parseFloat(st.nextToken());			mm.setBoundingBox(new BoundingBox(n, s, e, w));		}		catch (Exception e) {			mm.setBoundingBox(new BoundingBox());		}	}	/**	 * @deprecated ETj: image dimensions are no longer handled server side	 */	public static int getImageWidth(ServiceContext srvContext) {		String size = (String)srvContext.getUserSession().getProperty(Constants.SESSION_SIZE);		int width;		if (size.equals("small")) width = _minw;		else width = _maxw;		return width;	}	/**	 * @deprecated ETj: image dimensions are no longer handled server side	 */	public static int getImageHeight(ServiceContext srvContext) {		String size = (String)srvContext.getUserSession().getProperty(Constants.SESSION_SIZE);		int height;		if (size.equals("small")) height = _minh;		else height = _maxh;		return height;	}	// Returns the MapMerger object for the user session	 static String getTool(ServiceContext srvContext)	{		String tool = (String)srvContext.getUserSession()			.getProperty(Constants.SESSION_TOOL);		if (tool == null)			tool = Constants.DEFAULT_TOOL;		return tool;	}	public static void setTempUrl(String url) {		MapUtil.url = url;	}	public static String getTempUrl() {		return MapUtil.url;	}	protected static void moveTo(BoundingBox bb, int x, int y, int width, int height) throws Exception	{		float mapX = bb.getWest() + (bb.getEast() - bb.getWest()) * x / width;		float mapY = bb.getNorth() - (bb.getNorth() - bb.getSouth()) * y / height;		bb.moveTo(mapX, mapY);	}	protected static BoundingBox move(BoundingBox bb, int deltaX, int deltaY, int width, int height) throws Exception	{		float mapX = (bb.getEast() - bb.getWest()) * (float)deltaX / width;		float mapY = (bb.getNorth() - bb.getSouth()) * (float)deltaY / height;		return bb.move(mapX, mapY);	}	protected static BoundingBox zoomInBox(BoundingBox bb, int mapimgx, int mapimgy, int mapimgx2, int mapimgy2, int imageWidth, int imageHeigth)		throws Exception {		// Move and zoom		float mapX = bb.getWest() + (bb.getEast() - bb.getWest()) * mapimgx / imageWidth;		float mapY = bb.getNorth() - (bb.getNorth() - bb.getSouth()) * mapimgy / imageHeigth;		float mapX2 = bb.getWest() + (bb.getEast() - bb.getWest()) * mapimgx2 / imageWidth;		float mapY2 = bb.getNorth() - (bb.getNorth() - bb.getSouth()) * mapimgy2 / imageHeigth;		return new BoundingBox(mapY2, mapY, mapX2, mapX);	}	protected static BoundingBox zoomOutBox(BoundingBox bb, int mapimgx, int mapimgy, int mapimgx2, int mapimgy2, int imageWidth, int imageHeight)		throws Exception {		// Move and zoom		float north = bb.getNorth() + (bb.getNorth() - bb.getSouth()) * imageHeight / (mapimgy - mapimgy2);		float south = bb.getSouth() - (bb.getNorth() - bb.getSouth()) * imageHeight / (mapimgy - mapimgy2);		float east = bb.getEast() + (bb.getEast() - bb.getWest()) * imageWidth / (mapimgx2 - mapimgx);		float west = bb.getWest() - (bb.getEast() - bb.getWest()) * imageWidth / (mapimgx2 - mapimgx);//		System.out.println("north : " + north + "; south = " + south + "; east = " + east + "; west = " + west);		return new BoundingBox(north, south, east, west);	}	public static BoundingBox setScale(BoundingBox bb, int imageWidth, int imageHeight, long scale, float dpi)		throws Exception	{		float cx = (bb.getEast()+bb.getWest())/2;		float cy = (bb.getNorth()+bb.getSouth())/2;		// Set the scale		double degScale = scale/423307109.727 * 96f/dpi;		float dx = (float)(imageWidth  * degScale);	 	float dy = (float)(imageHeight * degScale);		return new BoundingBox( cy+dy/2, cy-dy/2,									   cx+dx/2, cx-dx/2);	}	public static void setDefaultImageSize(String s) {		defaultImageSize = s;	}	public static String getDefaultImageSize() {		return defaultImageSize;	}}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
极品瑜伽女神91| 欧美三级日本三级少妇99| 成人av免费观看| 91精品国产综合久久久蜜臀粉嫩| 久久色视频免费观看| 亚洲国产欧美在线| av在线不卡电影| 久久久99久久| 五月婷婷久久综合| 91影院在线观看| 久久精品亚洲麻豆av一区二区 | 国产精品一区二区你懂的| 91一区二区在线观看| 久久精品亚洲国产奇米99| 日韩不卡手机在线v区| 91精彩视频在线| 成人欧美一区二区三区1314| 国产在线精品一区二区不卡了| 欧美色综合影院| 日韩理论片网站| 波多野结衣中文一区| 久久免费午夜影院| 国产综合一区二区| 91精品综合久久久久久| 久久99国产精品免费| 欧美性生活久久| 一区二区三区美女视频| 91黄色在线观看| 欧美韩国日本不卡| 成人的网站免费观看| 久久免费的精品国产v∧| 久久激情五月婷婷| 精品国产一区a| 国产一区二区精品久久| 国产喂奶挤奶一区二区三区| 丰满白嫩尤物一区二区| 国产精品久久久久婷婷二区次| 国产成人一区在线| 日本一区免费视频| 成人高清视频免费观看| 一区二区三区在线观看网站| 欧美在线不卡一区| 日韩福利视频网| 精品国产一区二区亚洲人成毛片| 国产乱码精品一区二区三区忘忧草| 久久新电视剧免费观看| 成人免费毛片高清视频| 亚洲乱码一区二区三区在线观看| 91黄色免费看| 人人超碰91尤物精品国产| 欧美va在线播放| 国产盗摄精品一区二区三区在线| 中文字幕不卡一区| 欧美伊人久久大香线蕉综合69| 午夜精品久久一牛影视| 久久综合网色—综合色88| 成人精品gif动图一区| 亚洲自拍偷拍麻豆| 欧美电影免费观看高清完整版在线 | 国产成a人无v码亚洲福利| 亚洲国产精品精华液2区45| 99re6这里只有精品视频在线观看| 亚洲乱码国产乱码精品精小说| 欧美日韩一卡二卡| 激情综合网av| 亚洲欧美另类图片小说| 欧美一区二区二区| 成人开心网精品视频| 午夜久久电影网| 国产亚洲精品中文字幕| 欧美日韩日日摸| 风流少妇一区二区| 视频一区二区三区在线| 欧美国产禁国产网站cc| 欧美日韩精品是欧美日韩精品| 国产在线视频精品一区| 亚洲午夜影视影院在线观看| 久久奇米777| 欧美美女一区二区在线观看| 国产91丝袜在线播放0| 亚洲高清免费观看| 最新欧美精品一区二区三区| 精品国产乱码91久久久久久网站| 色系网站成人免费| 国产一区二区主播在线| 尤物在线观看一区| 国产亚洲成年网址在线观看| 欧美午夜精品久久久久久孕妇| 国产一区二三区好的| 亚洲综合激情另类小说区| 中文字幕精品在线不卡| 精品国产乱码久久久久久免费| 色8久久人人97超碰香蕉987| 国产二区国产一区在线观看 | 国产欧美日本一区视频| 日韩一级片网址| 欧洲激情一区二区| 99久久久国产精品免费蜜臀| 九九九久久久精品| 日产欧产美韩系列久久99| 一区二区久久久| 一区二区三区日本| 亚洲人xxxx| 亚洲视频精选在线| 中文字幕永久在线不卡| 欧美激情综合在线| 久久久www成人免费无遮挡大片| 欧美一级精品在线| 日韩一区二区在线观看视频| 国产精品乱码一区二区三区软件| 日韩一区二区中文字幕| 欧美另类变人与禽xxxxx| 欧美日韩一区二区在线视频| 色偷偷久久一区二区三区| 97se狠狠狠综合亚洲狠狠| 国产99久久久国产精品潘金| 国产精品伊人色| 国产在线国偷精品产拍免费yy| 久久丁香综合五月国产三级网站| 美女性感视频久久| 久久精品二区亚洲w码| 国内久久精品视频| 高清av一区二区| 色又黄又爽网站www久久| 欧美中文字幕亚洲一区二区va在线| 欧美在线一二三四区| 欧美绝品在线观看成人午夜影视| 欧美精品精品一区| 精品日韩99亚洲| 国产欧美综合在线| 亚洲丝袜精品丝袜在线| 午夜欧美一区二区三区在线播放| 婷婷成人激情在线网| 国内精品久久久久影院一蜜桃| 国产精品中文欧美| 一本大道久久a久久精品综合 | 成人永久看片免费视频天堂| 99久久精品一区| 欧美精选午夜久久久乱码6080| 欧美一二三区在线观看| 欧美激情艳妇裸体舞| 亚洲一卡二卡三卡四卡| 免费在线观看一区二区三区| 国产99久久久久| 精品污污网站免费看| 久久午夜电影网| 亚洲精品v日韩精品| 美女性感视频久久| 成人黄动漫网站免费app| 欧美午夜寂寞影院| 久久久久久久国产精品影院| 国产精品国产三级国产aⅴ入口| 亚洲一区二区综合| 国产伦精品一区二区三区视频青涩| 色综合天天综合网国产成人综合天 | 亚洲视频一区在线| 日本色综合中文字幕| 成人h动漫精品一区二区| 欧美日韩一区高清| 国产精品入口麻豆九色| 午夜精品久久久久久久久久久| 国产一区二区中文字幕| 欧美亚洲愉拍一区二区| 国产欧美一区二区精品婷婷| 视频一区二区不卡| 91亚洲资源网| 久久久久久99精品| 日韩激情视频在线观看| 色婷婷激情久久| 国产日产亚洲精品系列| 免费成人在线网站| 欧美日韩精品一区二区三区| 亚洲桃色在线一区| 国产盗摄精品一区二区三区在线| 8x福利精品第一导航| 亚洲另类在线制服丝袜| 成人黄色av电影| 国产日韩在线不卡| 精品写真视频在线观看| 精品视频免费在线| 亚洲免费视频成人| 91影视在线播放| 专区另类欧美日韩| 国v精品久久久网| 久久久亚洲欧洲日产国码αv| 婷婷中文字幕综合| 欧美美女直播网站| 亚洲影视资源网| 91国产精品成人| 一区二区三区色| 色欧美乱欧美15图片| 亚洲丝袜另类动漫二区| 99久久婷婷国产综合精品电影| 欧美韩国日本一区| 成人丝袜高跟foot| 国产精品久久久99| 91色综合久久久久婷婷| 中文字幕综合网| 在线免费不卡视频| 亚洲v日本v欧美v久久精品|