C# AE 对图层筛选要素后显示/只显示符合条件的要素

[转载]地址:http://www.cnblogs.com/joysky/p/4581208.html  

有时候,我们要对图层上的地物进行有选择性的显示,以此来满足实际的功能要求。

按下面介绍的方法可轻松实现图层属性过滤显示:

  1、当图层已经加载时

private void ShowByFilter(AxMapControl sMapCtr, IFeatureLayer sFlyr, string sFilter)
        {
            ESRI.ArcGIS.Carto.IFeatureLayerDefinition pDef = (ESRI.ArcGIS.Carto.IFeatureLayerDefinition)sFlyr;
             pDef.DefinitionExpression = sFilter;
             sMapCtr.ActiveView.Refresh();
        }

说明: sFilter 语句与SQL语句略有不同,使用时需要注意!

 

2、当图层尚未加载时

private IFeatureClass GetFeatureClass(IWorkspace pWS, string sTabName, string sAttrFilter)
        {
            try
            {
                if (pWS == null || sTabName == null) return null;
                IFeatureWorkspace pFWS = pWS as IFeatureWorkspace;
                IFeatureClass pFC = null;
                pFC = pFWS.OpenFeatureClass(sTabName);
                IQueryDef pQueryDef = pFWS.CreateQueryDef();
                pQueryDef.Tables = sTabName;
                pQueryDef.WhereClause = sAttrFilter;
                IQueryName2 pQueryName = new FeatureQueryNameClass();
                pQueryName.PrimaryKey = pFC.OIDFieldName;
                pQueryName.QueryDef = pQueryDef;
                IDataset pDS = (IDataset)pFWS;
                IWorkspaceName pWSName = (IWorkspaceName)pDS.FullName;
                IDatasetName pDSName = (IDatasetName)pQueryName;
                pDSName.WorkspaceName = pWSName;
                IName pName = (IName)pQueryName;
                pFC = pName.Open() as IFeatureClass;
                return pFC;
            }
            catch
            {
                return null;
            }
        }

 其他补充:

参照其他博客:

http://www.cnblogs.com/marvelousone/p/7466866.html

转载于:https://www.cnblogs.com/marvelousone/p/7144312.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值