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

📄 webmap.java

📁 esri的ArcGIS Server超级学习模板程序(for java)
💻 JAVA
字号:
package com.esri.solutions.jitk.web.data;

import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;

import com.esri.adf.web.data.geometry.GeometryUtil;
import com.esri.adf.web.data.geometry.WebExtent;
import com.esri.adf.web.data.geometry.WebPoint;
import com.esri.solutions.jitk.common.resources.TextResources;
import com.esri.solutions.jitk.web.error.DefaultError;
import com.esri.solutions.jitk.web.error.IErrorProducer;
import com.esri.solutions.jitk.web.error.IErrorProducerAware.messageType;

public class WebMap extends com.esri.adf.web.data.WebMap {
	private static final Logger _logger = LogManager.getLogger(WebMap.class);
	private static final long serialVersionUID = 7168654400011945526L;
	
	protected void renderResourceMessage(String messageKey, messageType messageType) {
		IErrorProducer errorProducer = (IErrorProducer) this.getWebContext().getAttribute("errorProducer");
		
		DefaultError error = new DefaultError();
		error.setCode(messageType.toString());
		String message = TextResources.getResourceString(messageKey);
		error.setMessage(message);
		errorProducer.push(error);	
	}	
	
	@Override
	public void centerAt(WebPoint centerPoint, double zoomFactor) {
		if (_logger.isDebugEnabled()) {
			_logger.debug("Centering @ " + centerPoint + " with zoomFactor " + zoomFactor);
		}
		
		if (zoomFactor < 0 || zoomFactor > 2) {
	    	_logger.warn("Zoom factor must be between 0 and 2: " + zoomFactor);
	    	return;
	    }
	    
	    if (_logger.isDebugEnabled()) {
	    	_logger.debug("WebMap.centerAt(" + centerPoint + "," + zoomFactor + ")");
	    }
	    
	    WebPoint mapPoint = this.getWebContext().projectPoint(centerPoint); 
	    com.esri.solutions.jitk.web.data.geometry.WebExtent centerAtExtent = 
	    	new com.esri.solutions.jitk.web.data.geometry.WebExtent(currExtent);
	    
	    centerAtExtent.centerAt(mapPoint, zoomFactor);
	
	    if (GeometryUtil.inside(centerAtExtent, getFullExtent())) {
	    	if (_logger.isDebugEnabled()) {
	    		_logger.debug("Center at extent " + centerAtExtent + " inside full extent " + getFullExtent());
	    	}
	    	
	    	super.centerAt(centerPoint, zoomFactor);
	    } else {
	    	if (_logger.isDebugEnabled()) {
	    		_logger.debug("Center at extent " + centerAtExtent + " NOT inside full extent " + getFullExtent() + " center at will not take place");
	    	}	
	    	
	    	renderResourceMessage("jitk.general.webmap.msg.error", messageType.ERROR);
	    }
	}
	
	@Override
	public void setInitExtent(WebExtent initExtent) {
		if (_logger.isDebugEnabled()) {
			_logger.debug("Setting init extent on " + initExtent);
		}
		
	    com.esri.solutions.jitk.web.data.geometry.WebExtent newExtent = 
	    	new com.esri.solutions.jitk.web.data.geometry.WebExtent(initExtent);
	    WebExtent newCurrentExt = this.getWebContext().projectExtent(newExtent);
	    
	    if (GeometryUtil.inside(newCurrentExt, getFullExtent())) {
	    	if (_logger.isDebugEnabled()) {
	    		_logger.debug("New extent " + newCurrentExt + " inside full extent " + getFullExtent());
	    	}
	    	
	    	super.setCurrentExtent(newCurrentExt);
	    } else {
	    	if (_logger.isDebugEnabled()) {
	    		_logger.debug("New extent " + newCurrentExt + " NOT inside full extent " + getFullExtent() + " setting initExtent extent will not take place");
	    	}	
	    	
	    	renderResourceMessage("jitk.general.webmap.msg.error", messageType.ERROR);
	    }			
	}

	
	@Override
	public void setCurrentExtent(WebExtent extent) {
		if (_logger.isDebugEnabled()) {
			_logger.debug("Setting current extent on " + extent);
		}
		
	    com.esri.solutions.jitk.web.data.geometry.WebExtent newExtent = 
	    	new com.esri.solutions.jitk.web.data.geometry.WebExtent(extent);
	    WebExtent newCurrentExt = this.getWebContext().projectExtent(newExtent);
	    
	    if (GeometryUtil.inside(newCurrentExt, getFullExtent())) {
	    	if (_logger.isDebugEnabled()) {
	    		_logger.debug("New extent " + newCurrentExt + " inside full extent " + getFullExtent());
	    	}
	    	
	    	super.setCurrentExtent(newCurrentExt);
	    } else {
	    	if (_logger.isDebugEnabled()) {
	    		_logger.debug("New extent " + newCurrentExt + " NOT inside full extent " + getFullExtent() + " setting new extent will not take place");
	    	}	
	    	
	    	renderResourceMessage("jitk.general.webmap.msg.error", messageType.ERROR);
	    }	    
	}
}

⌨️ 快捷键说明

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