小秋的家

home

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  1 Posts :: 91 Stories :: 17 Comments :: 0 Trackbacks
内容摘要
在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

posted on 2008-03-04 15:25 棋剑小秋 阅读(850) 评论(0)  编辑  收藏 所属分类: GIS

只有注册用户登录后才能发表评论。


网站导航: