小秋的家

          home

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            1 Posts :: 91 Stories :: 17 Comments :: 0 Trackbacks

          package com.Myclass;

          import com.esri.adf.web.faces.event.ClientActionArgs;
          import com.esri.adf.web.faces.event.MapEvent;
          import com.esri.adf.web.faces.event.MapToolAction;
          import com.esri.adf.web.data.WebContext;
          import com.esri.adf.web.data.query.WebQuery;
          import com.esri.adf.web.data.geometry.WebGeometry;
          import com.esri.adf.web.ags.data.AGSMapResource;
          import com.esri.adf.web.ags.data.AGSMapFunctionality;
          import com.esri.arcgisws.MapServerPort;
          import com.esri.arcgisws.SpatialFilter;
          import com.esri.arcgisws.EsriSearchOrder;
          import com.esri.arcgisws.QueryFilter;
          import com.esri.arcgisws.EsriSpatialRelEnum;
          import com.esri.arcgisws.LayerDescription;
          import com.esri.arcgisws.RecordSet;
          import com.esri.arcgisws.Record;
          import com.esri.adf.web.ags.util.AGSUtil;
          import com.esri.arcgisws.PolygonN;


          public class QueryPolygon implements MapToolAction //?????
          {
           private WebContext webContext = null;
           private String pMsg ;
           public QueryPolygon(){}
           
           
           private void QueryFeature(WebGeometry pWebGeometry)
           {
            AGSMapResource pAGSMap = (AGSMapResource)webContext.getResources().get("ags1");
            MapServerPort pMapServer = pAGSMap.getMapServer();

            PolygonN pPolygonN = (PolygonN)AGSUtil.toAGSGeometry(pWebGeometry);
                 
            SpatialFilter spatialFilter = new SpatialFilter();
                  spatialFilter.setSpatialRel(EsriSpatialRelEnum.esriSpatialRelIntersects);
                  spatialFilter.setWhereClause("");//where
                  spatialFilter.setSearchOrder(EsriSearchOrder.esriSearchOrderSpatial);
                  spatialFilter.setSpatialRelDescription("");
                  spatialFilter.setGeometryFieldName("");//
                  spatialFilter.setFilterGeometry(pPolygonN);
                 
                  AGSMapFunctionality pMapFunc = (AGSMapFunctionality)pAGSMap.getFunctionality("map");
                  LayerDescription[] pLayerDescs = pMapFunc.getLayerDescriptions();
                  QueryFilter pFilter = (QueryFilter)spatialFilter;
                 
                  RecordSet pRSet = null;
                  Record[] pRs = null;
                  //WebQuery pWebQuery = this.webContext.getWebQuery();
                  WebQuery pWebQuery = (WebQuery)this.webContext.getAttribute("query");
                  pWebQuery.clearGraphics();

                  int pLayerCount = pLayerDescs.length;
                  for(int i=0; i<pLayerCount;i++)
                  {
                   LayerDescription pLayerDesc = pLayerDescs[i];
            
                   if(pLayerDesc.isVisible())
                   {
                    try
                    { 
                      pRSet = pMapServer.queryFeatureData(pMapServer.getDefaultMapName(), i,pFilter);
                    }
                    catch(Exception pE)
                    {
                     return;
                    }
                    pRs = pRSet.getRecords();
                    
                    int TheLayerQueryCount = pRs.length;
                    for(int j=0;j < TheLayerQueryCount;j++)
                    {
                     Record pItem = pRs[j];
                     
                     int TheItemValuesCount = pItem.getValues().length;
                     for(int k=0; k<TheItemValuesCount;k++)
                     {
                      Object pOjb = pItem.getValues()[k];
                      if(pOjb instanceof com.esri.arcgisws.Geometry)
                      {
                       WebGeometry pGeo = null;
                       try
                       {
                        pGeo = AGSUtil.fromAGSGeometry((com.esri.arcgisws.Geometry)pOjb);
                       }
                       catch(Exception pE)
                       {
                        System.out.println(pE.getMessage());
                        break;
                       }
                       pWebQuery.addDisplayGeometry(pGeo);
                       break;
                      }
                     }
                    }
                   }
                  }
                  this.webContext.refresh();
           }
           
           public void execute(MapEvent arg0) throws Exception 
           { 
            ClientActionArgs clientarg = arg0.getClientActionArgs();
               System.out.println( "---所有參數---" + clientarg.getRequestParameters());
              
            this.webContext = arg0.getWebContext();
            WebGeometry pWebGeometry = arg0.getWebGeometry();
            pWebGeometry = pWebGeometry.toMapGeometry(arg0.getWebContext().getWebMap());
            this.QueryFeature(pWebGeometry);
           }
           
          }


          轉載于: http://leo43.blog.hexun.com/p9/default.aspx

          posted on 2009-11-13 16:15 棋劍小秋 閱讀(624) 評論(0)  編輯  收藏 所屬分類: GIS
          主站蜘蛛池模板: 枣阳市| 汤阴县| 望江县| 南溪县| 和田县| 崇仁县| 江北区| 顺昌县| 什邡市| 湟源县| 盘锦市| 东明县| 闽侯县| 方正县| 宣武区| 偃师市| 敖汉旗| 浮山县| 马边| 桂林市| 滨海县| 大化| 烟台市| 格尔木市| 罗山县| 临西县| 安阳县| 莫力| 张家港市| 镇赉县| 宁国市| 华蓥市| 海晏县| 怀来县| 绥中县| 庆元县| 如东县| 曲阜市| 禹州市| 昌乐县| 江山市|