ArcIMS根据查询结果定位并高亮显示(面图层的定位)(ADF+C#)

         // 定位到指定的面,并高亮显示
        ESRI.ArcGIS.ADF.Web.DataSources.IMS.MapFunctionality mf  =  (ESRI.ArcGIS.ADF.Web.DataSources.IMS.MapFunctionality)Map1.GetFunctionality( 0 ); ;
        ESRI.ArcGIS.ADF.IMS.Carto.MapView mv
=  mf.MapView;
        ESRI.ArcGIS.ADF.IMS.Carto.Layer.FeatureLayer queryLayer;

        queryLayer  =  (FeatureLayer)mv.Layers.FindByName( " SDE.SDE.行政分区 " );
        Filter queryFilter 
=   new  Filter();
        
string  strSQL  =   " objectid='1'' " ;
        queryFilter.WhereExpression 
=  strSQL;
        QueryParameters queryParams 
=   new  QueryParameters(queryFilter);
        queryFilter.Tolerance 
=   20 ;
        queryFilter.ToleranceUnits 
=  BufferUnits.Meters;
        queryParams.ReturnGeometries 
=   true ;
        queryParams.ReturnGlobalEnvelope 
=   true ;
        queryLayer.Visible 
=   true ;
        FeatureTable ft 
=  queryLayer.Query(queryParams);
        
// 缩放至查询结果的区域
         if  (ft.Rows.Count  !=   0 )
        
{
            ESRI.ArcGIS.ADF.IMS.Geometry.Geometry featureGeom 
= (ESRI.ArcGIS.ADF.IMS.Geometry.Geometry)ft.Rows[0]["#SHAPE#"];
            ESRI.ArcGIS.ADF.Web.Geometry.Geometry adfGEom 
= ESRI.ArcGIS.ADF.Web.DataSources.IMS.Converter.ToADFGeometry(featureGeom);
            ESRI.ArcGIS.ADF.Web.Geometry.Envelope adfEnv 
= ESRI.ArcGIS.ADF.Web.Geometry.Envelope.GetMinimumEnclosingEnvelope(adfGEom);
            Map1.Extent 
= adfEnv;
        }



        ESRI.ArcGIS.ADF.IMS.Display.Symbol.FeatureSymbol selSymbol 
=   new  ESRI.ArcGIS.ADF.IMS.Display.Symbol.SimpleFillSymbol(System.Drawing.Color.Yellow, System.Drawing.Color.Red, PolygonFillType.Solid);
        selSymbol.Transparency 
=   10 ;
        ESRI.ArcGIS.ADF.IMS.Display.Renderer.ValueMapRenderer selValueMapRenderer 
=   new  ESRI.ArcGIS.ADF.IMS.Display.Renderer.ValueMapRenderer( "" , selSymbol,  " 名称 " );
        FeatureLayer hilightLayer 
=  queryLayer.CreateSelectionLayer(queryFilter, selValueMapRenderer,  " hilightlayer " );
        hilightLayer.Name 
=   " SelectedPARCEL " ;
        
// 将图层添加到mapView中
         if  (mv.Layers.FindByName( " SelectedPARCEL " ==   null )
        
{
            mv.Layers.Add(hilightLayer);
        }

        
else
        
{
            mv.ClearSelectionLayers();
            mv.Layers.Add(hilightLayer);
        }


        Map1.Refresh();
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值