📄 demo.java
字号:
package demo;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import com.esri.adf.web.data.GISResource;
import com.esri.adf.web.data.WebContext;
import com.esri.adf.web.data.WebLayerInfo;
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.query.IdentifyCriteria;
import com.esri.adf.web.data.query.QueryResult;
import com.esri.adf.web.data.query.WebQuery;
import com.esri.adf.web.data.results.WebResults;
import com.esri.adf.web.faces.event.MapEvent;
import com.esri.adf.web.faces.event.TaskEvent;
public class Demo {
double zoomFactor = 0.6;
public void select(MapEvent e) {
//get the adf objects
WebContext ctx = e.getWebContext();
WebMap wmap = ctx.getWebMap();
WebQuery wquery = ctx.getWebQuery();
//get the screen geom
WebGeometry screengeom = e.getWebGeometry();
//convert to map geom
WebExtent ext = (WebExtent)screengeom.toMapGeometry(wmap);
//perform query and get results ***busy code***
IdentifyCriteria ic = new IdentifyCriteria(ext);
List layers = new ArrayList();
layers.add(new WebLayerInfo(2, "Countries", (GISResource)ctx.getResources().get("world")));
List results = wquery.query(ic, layers);
//iterate thru and highlight each result
wquery.clearGraphics();
for (Iterator iter = results.iterator(); iter.hasNext();) {
QueryResult r = (QueryResult) iter.next();
r.highlight();
}
//get the WebResults object
WebResults wresults = ctx.getWebResults();
//use the verbose method to add results
wresults.addResultsWithActionArray("Selected Countries: " + results.size(),
results,
"getName", "getDetails",
new String[] {"zoom", "highlight", "clearGraphic"});
}
public void zoom(TaskEvent e) {
//get the webcontext and webmap
WebContext ctx = e.getWebContext();
WebMap wmap = ctx.getWebMap();
//get the current ext
WebExtent ext = wmap.getCurrentExtent();
//expand the ext by the zoomFactor
ext.expand(zoomFactor);
//set the new ext
wmap.setCurrentExtent(ext);
//refresh the context
ctx.refresh();
}
public Map getZoomFactors() {
Map factors = new LinkedHashMap();
for(int i = 1; i <= 10; i++) {
Double factor = new Double(2d * i / 10);
factors.put(factor, factor);
}
return factors;
}
public double getZoomFactor() {
return zoomFactor;
}
public void setZoomFactor(double zoomFactor) {
this.zoomFactor = zoomFactor;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -