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