开发环境:Eclipse3.2
开发步骤:
一、 AdministratorArcIMS
二、 Eclipse ArcGIS Web Project
三、 Java FeatureQuery queryFeaturesInRectangle
package com.wudefu;
import com.esri.adf.web.data.WebContext;
import com.esri.adf.web.data.geometry.WebExtent;
import com.esri.adf.web.data.geometry.WebPoint;
import com.esri.adf.web.data.*;
import com.esri.adf.web.faces.event.MapEvent;
import com.esri.adf.web.aims.data.AIMSMapResource;
import com.esri.adf.web.aims.data.AIMSMapFunctionality;
import com.esri.adf.web.aims.data.AIMSTocFunctionality;
import com.esri.adf.web.aims.data.query.AIMSQueryFunctionality;
import com.esri.aims.mtier.model.envelope.Envelope;
import com.esri.aims.mtier.model.map.layer.FeatureLayer;
import com.esri.aims.mtier.model.map.layer.query.Buffer;
import com.esri.aims.mtier.model.map.layer.query.Filter;
import com.esri.aims.mtier.model.map.layer.query.Recordset;
import com.esri.aims.mtier.model.map.layer.renderer.symbol.SimpleMarkerSymbol;
import com.esri.aims.mtier.model.map.layer.renderer.symbol.SimplePolygonSymbol;
import com.esri.aims.mtier.model.map.*;
import com.esri.aims.mtier.model.map.Map;
import java.util.*;
public class FeatureQuery {
private WebContext context;
//
public void queryFeaturesInRectangle(MapEvent event){
//调用JAVA ADF里面的WebControl获取地图
AIMSMapFunctionality imsMapFun=(AIMSMapFunctionality)aimsMap.getFunctionality( Map
//
FeatureLayer fLayer=(FeatureLayer)imsMap.getLayers().item(5);
//
WebMap webMap=context.getWebMap();
WebExtent chosenExent = (WebExtent) event.getWebGeometry().toMapGeometry(webMap);
// Java Connector
Envelope env=new Envelope();
env.setMaxX(chosenExent.getMaxX());
env.setMaxY(chosenExent.getMaxY());
env.setMinX(chosenExent.getMinX());
env.setMinY(chosenExent.getMinY());
//
SimpleMarkerSymbol sms = new SimpleMarkerSymbol();
sms.setColor("0,0,255");
sms.setMarkerType(sms.STAR);
sms.setWidth(20);
Filter filter=new Filter();
filter.setSpatialShape(env);
filter.setGlobalEnvelope(true);
fLayer.setFilterObject(filter);
//filterupdate Recordset
webMap.update(context, null);
//Java Connector
int a=fLayer.getRecordset().getCount();
//int b=fLayer.getFeatureCount();
System.out.println(a);
String fieldNames[]=new String[fLayer.getRecordset().getTableDesc().getCount()];
String fieldValues[]=new String[fLayer.getRecordset().getTableDesc().getCount()];
for(int i=0;i<fLayer.getRecordset().getCount();i++){
for (int k=0; k<fLayer.getRecordset().getTableDesc().getCount(); k++) {
fieldNames[k]= fLayer.getRecordset().getTableDesc().getFieldName(k);
fieldValues[k]=fLayer.getRecordset().getRecords(i).getFieldValue(k);
System.out.println(fieldNames[k]);
System.out.println(fieldValues[k]);
}
}
imsMap.displayFeatures(fLayer,true,sms);
webMap.update(context, null);
//imsMap.refresh()
imsMap.reset();
}
}
四、 五、 mapviewer.jsp
toolTip="
<span style="font-family: 宋体;" Times
|