內容摘要 | |||||
在ArcIMS9.2中,給用戶提供了Java ADF開發框架。習慣了Java Connector開發的用戶可能會問,Java Connector是否還有用武之地,如何與Java ADF結合起來呢?下面就以圖層要素屬性查詢為例子,說明如何使用Java ADF與Java Connector結合開發實現要素查詢功能。在使用ADF開發中,有許多需要注意的小技巧。本例子也使用粗體的注釋進行了標識。 | |||||
過程描述 | |||||
開發環境: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 |