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

📄 georssqueryresult.java

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

import java.util.Map;

import com.esri.adf.web.data.GraphicElement;
import com.esri.adf.web.data.WebContext;
import com.esri.adf.web.data.WebContextInitialize;
import com.esri.adf.web.data.WebMap;
import com.esri.adf.web.data.geometry.WebExtent;
import com.esri.adf.web.data.geometry.WebGeometry;
import com.esri.adf.web.data.geometry.WebPath;
import com.esri.adf.web.data.geometry.WebPoint;
import com.esri.adf.web.data.geometry.WebPolyline;
import com.esri.adf.web.util.MeasureUtil;

public class GeorssQueryResult implements WebContextInitialize {
	
	protected WebContext context;
	protected String name;
	protected Map<String, String> details;
	protected WebGeometry mapGeometry;
	protected GraphicElement element;
	
	public void destroy() {
		this.context = null;
	}

	public void init(WebContext context) {
		if (context != null)
			this.context = context;
	}
	
	public GeorssQueryResult(String name, Map<String, String> details, WebContext context, WebGeometry mapGeometry) {
		this.name = name;
		this.details = details;
		this.mapGeometry = mapGeometry;
		init(context);
	}
	
	public java.lang.String getName() {
		return name;
	}

	public java.util.Map<String, String> getDetails() {
		return details;
	}
	
	private boolean isValid() {
		return (this.context != null && this.mapGeometry != null);
	}
	
	public void zoom() {
		if(isValid()) {
			WebMap webMap = this.context.getWebMap();
			
			if(this.mapGeometry instanceof WebPoint) {
				WebPoint pnt = (WebPoint) this.mapGeometry;
			
				WebPath webPath = new WebPath();
				webPath.addPoint(new WebPoint(pnt.getX() - 0.5, pnt.getY()));
				webPath.addPoint(new WebPoint(pnt.getX() + 0.5, pnt.getY()));
				
				WebPolyline webLine = new WebPolyline(pnt.getSpatialReference());
				webLine.addPath(webPath);
				double metersPerMapUnit = MeasureUtil.getDistance(webLine, pnt.getSpatialReference());
				//double aspectRatio = webMap.getCurrentExtent().getWidth() / webMap.getCurrentExtent().getHeight();
				double d = 1000000 * (1.0 / webMap.getDpi() * 0.0254) / metersPerMapUnit * webMap.getWidth() / 2; 
				WebExtent extent = new WebExtent(pnt.getX() - d, pnt.getY() - d, pnt.getX() + d, pnt.getY() + d, pnt.getSpatialReference());
				webMap.setCurrentExtent(extent);
				System.out.println(webMap.getMapScale());
			} else
				webMap.setCurrentExtent((WebExtent)this.mapGeometry);
			
			this.context.refresh();
		}
	}
	
	public void highlight() {
		if(element == null) {
			element = new GraphicElement();
			element.setSymbol(GeorssTaskUtil.selectedWebPictureMarkerSymbol);
			element.setGeometry(mapGeometry);
		}
		this.context.getWebGraphics().addGraphics(element);
		this.context.refresh();
	}
	
	public void clearGraphic() {
		this.context.getWebGraphics().removeGraphics(element);
		this.context.refresh();
	}
}

⌨️ 快捷键说明

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