fixedzoomouttool.java
来自「esri的ArcGIS Server超级学习模板程序(for java)」· Java 代码 · 共 54 行
JAVA
54 行
package com.esri.solutions.jitk.tools;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import com.esri.adf.web.data.WebMap;
import com.esri.adf.web.data.geometry.GeometryUtil;
import com.esri.adf.web.data.geometry.WebExtent;
import com.esri.adf.web.data.geometry.WebGeometry;
import com.esri.adf.web.data.geometry.WebPoint;
import com.esri.adf.web.faces.event.MapEvent;
import com.esri.adf.web.faces.event.MapToolAction;
import com.esri.solutions.jitk.commands.FixedZoomAction;
/**
* Fixed zoom out tool.
*
*/
public class FixedZoomOutTool extends FixedZoomAction implements MapToolAction {
private static final long serialVersionUID = 1960168071579576532L;
private static final Logger _logger = LogManager.getLogger(FixedZoomOutTool.class);
/**
* Zooms out at the passed center point
*/
public void zoomOutAtPoint(MapEvent event) {
_logger.debug("Zoom out at center point initiated by user");
WebMap webMap = getWebContext().getWebMap();
WebGeometry webGeo = event.getWebGeometry();
webGeo = webGeo.toMapGeometry(webMap);
WebPoint webExtentCenterPoint = (WebPoint) webGeo;
WebExtent currExtent = webMap.getCurrentExtent();
double zoomFactor = getZoomFactor();
WebExtent newExtent = getScaledExtent(currExtent, 1d / zoomFactor, webExtentCenterPoint);
WebExtent fullExtent = webMap.getFullExtent();
if (GeometryUtil.inside(newExtent, fullExtent)) {
_logger.debug("Next extent " + newExtent + " with full extent " + fullExtent+ ", zooming");
webMap.setCurrentExtent(newExtent);
} else {
_logger.debug("Next extent " + newExtent + " with full extent " + fullExtent+ ", zooming");
webMap.setCurrentExtent(fullExtent);
}
getWebContext().refresh(webMap);
}
public void execute(MapEvent mapEvent) throws Exception {
zoomOutAtPoint(mapEvent);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?