📄 webmap.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 + -