在ArcEngine下实现图层属性过滤的两种方法

简介:

转自chanyinhelv原文 在ArcEngine下实现图层属性过滤的两种方法

 

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

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

 

 1、当图层已经加载时

1
2
3
4
5
6
7
8
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();
}

 

 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;
    }
}
复制代码

 2、当图层尚未加载时

           由属性过滤后的FeatureClass创建图层、加载到地图的过程就比较简单了。

 

 

没有整理与归纳的知识,一文不值!高度概括与梳理的知识,才是自己真正的知识与技能。 永远不要让自己的自由、好奇、充满创造力的想法被现实的框架所束缚,让创造力自由成长吧! 多花时间,关心他(她)人,正如别人所关心你的。理想的腾飞与实现,没有别人的支持与帮助,是万万不能的。



    本文转自wenglabs博客园博客,原文链接:http://www.cnblogs.com/arxive/p/6262801.html ,如需转载请自行联系原作者

相关文章
关于Dev 控件里 gridcontrol 的gridview 显示序号和checkbox
关于Dev 控件里 gridcontrol 的gridview 显示序号和checkbox
|
监控 安全 jenkins
在配置 Gitee 的 Webhook 时,如何确保地址的安全性?
通过以上综合措施,可以有效地确保 Gitee Webhook 地址的安全性,防止恶意攻击和数据泄露,保障代码上线等相关流程的顺利进行。在实际配置过程中,应根据具体的业务需求和安全要求,合理选择和应用这些安全措施,以达到最佳的安全效果。
|
人工智能 自然语言处理 算法
2024年6月上半月30篇大语言模型的论文推荐
大语言模型(LLMs)在近年来取得了快速发展。本文总结了2024年6月上半月发布的一些最重要的LLM论文,可以让你及时了解最新进展。
576 3
2024年6月上半月30篇大语言模型的论文推荐
|
SQL 关系型数据库 数据库
Pandas 2.2 中文官方教程和指南(十·二)(2)
Pandas 2.2 中文官方教程和指南(十·二)
438 4
Electron 手动创建项目
Electron 手动创建项目
152 0
基于C#的ArcEngine二次开发35:缓冲区分析
基于C#的ArcEngine二次开发35:缓冲区分析
基于C#的ArcEngine二次开发35:缓冲区分析
|
Java Maven
IDEA Maven 优先使用本地依赖包
IDEA Maven 优先使用本地依赖包
838 0
|
NoSQL C# 数据库
基于C#的ArcEngine二次开发29:GDB文件操作及异常处理(下)
基于C#的ArcEngine二次开发29:GDB文件操作及异常处理
基于C#的ArcEngine二次开发51:获取图层字段唯一值列表(Get Unique Values)
基于C#的ArcEngine二次开发51:获取图层字段唯一值列表(Get Unique Values)
基于C#的ArcEngine二次开发51:获取图层字段唯一值列表(Get Unique Values)