AGSMapResource agsMap = ((AGSMapResource)webContext.getResources().get("ags1"));//獲得數據源,配置文件中有聲明
MapServerPort mapServer = agsMap.getMapServer();
//生成查詢對象
EnvelopeN env = new EnvelopeN(extent.getMinX(), extent.getMinY(), extent.getMaxX(), extent.getMaxY(),null, null, null, null, null);
SpatialFilter spatialFilter = new SpatialFilter();
spatialFilter.setSpatialRel(EsriSpatialRelEnum.esriSpatialRelIntersects);
spatialFilter.setWhereClause("");
spatialFilter.setSearchOrder(EsriSearchOrder.esriSearchOrderSpatial);
spatialFilter.setSpatialRelDescription("");
spatialFilter.setGeometryFieldName("");
spatialFilter.setFilterGeometry(env);
try{
int layerId = 1;//查詢的土層,ID號配置文件中有聲明
this.countedFeatures = mapServer.queryFeatureCount(mapServer.getDefaultMapName(), layerId, spatialFilter);
System.out.println("你選擇了 "+countedFeatures+" 要素");
}catch(RemoteException rme){
throw new ADFAGSException("Could not execute MapServer::queryFeatureCount()",rme);
}
Interface MapServerPort常用的方法:
mapServer.getDefaultMapName() 獲得默認地圖名
mapServer.queryFeatureCount(String mapName , int layerId ,SpatialFilter sf) return int 獲得指定圖層查詢到的要素總數
mapServer.queryFeatureData(String mapName , int layerId ,SpatialFilter sf) return RecordSet 獲得指定圖層查詢到的要素集(包含所有屬性字段)
mapServer.getDefaultMapName() return String 返回默認地圖名稱
mapServer.hasLayerCache(String mapName, int layerID) return bool 返回指定圖層是否是緩存圖層
轉載于: http://leo43.blog.hexun.com/p9/default.aspx