转自原文 C# ArcgisEngine开发中,对一个图层进行过滤,只显示符合条件的要素

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

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

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();

        }

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;

            }

        }

C# ArcgisEngine开发中,对一个图层进行过滤,只显示符合条件的要素的更多相关文章

  1. 【转】C# ArcgisEngine开发中,对一个图层进行过滤,只显示符合条件的要素

    有时候,我们要对图层上的地物进行有选择性的显示,以此来满足实际的功能要求. 按下面介绍的方法可轻松实现图层属性过滤显示: 1.当图层已经加载时 private void ShowByFilter(Ax ...

  2. 在C#/.NET应用程序开发中创建一个基于Topshelf的应用程序守护进程(服务)

    本文首发于:码友网--一个专注.NET/.NET Core开发的编程爱好者社区. 文章目录 C#/.NET基于Topshelf创建Windows服务的系列文章目录: C#/.NET基于Topshelf ...

  3. iPhone开发中从一个视图跳到另一个视图有三种方法:

    iPhone开发中从一个视图跳到另一个视图有三种方法:   1.self.view addSubView:view .self.window addSubView,需要注意的是,这个方法只是把页面加在 ...

  4. MVC已经是现代Web开发中的一个很重要的部分,下面介绍一下Spring MVC的一些使用心得。

    MVC已经是现代Web开发中的一个很重要的部分,下面介绍一下Spring MVC的一些使用心得. 之前的项目比较简单,多是用JSP .Servlet + JDBC 直接搞定,在项目中尝试用 Strut ...

  5. 在开发中进入一个方法后想要到原来那行 ctrl+alt+左 回到上一步 ctrl+alt+右 回到下一步

    在开发中进入一个方法后想要到原来那行 ctrl+alt+左 回到上一步ctrl+alt+右 回到下一步

  6. 使用 Android Studio 开发工具创建一个 Android 应用程序,显示一行文字“Hello Android”,并将应用程序的名称更改为“FirstApp”。

    需求说明: 使用 Android Studio 开发工具创建一个 Android 应用程序,显示一行文字"Hello Android",并将应用程序的名称更改为"Firs ...

  7. 项目开发中封装一个BarButtonItem类别-很实用

    Encapsulates a TabBarItem--封装一个BarButtonItem类 在我们程序的导航栏的左边或右边一般都会有这样的BarButtonItem,用来界面之间的跳转 如果我们有很多 ...

  8. Dynamics CRM - 在 Dynamics CRM 开发中创建一个 Entity 对象

    在 Dynamics CRM 的开发中,我们时不时需要创建 Entity 对象,而对于如何创建 Entity 对象,在 C# plugin 和 JS 的写法存在些许差异. 一.C# Plugin 创建 ...

  9. NX二次开发-UFUN获取一个图层类别的tag UF_LAYER_ask_category_tag

    NX11+VS2013 #include <uf.h> #include <uf_ui.h> #include <uf_layer.h> UF_initialize ...

随机推荐

  1. B1270 [BeijingWc2008]雷涛的小猫 dp

    这个题的原始方法谁都会,但是n^3会T.之后直接优化,特别简单,就是每次处理出来每层的最大值,而不用枚举.之前没这么做是因为觉得在同一棵树的时候没有下落,所以不能用这个方法.后来想明白了,在同一棵树上 ...

  2. js定义类和方法

    js中定义一个类 //定义一个user类 var user = function(){ //类中的属性 var age; //设置age的值 var setAge = function(age){ t ...

  3. PCB LDI 实现周期自动更新 实现思路

    一.基本思路整理如下: 二.封周期启动程序C#代码(部份代码) /// <summary> /// 单个生产型号 更新周期 /// </summary> /// <par ...

  4. GYM 100741A Queries(树状数组)

    A. Queries time limit per test 0.25 seconds memory limit per test 64 megabytes input standard input ...

  5. Chrome 最小化恢复之后部分黑屏

    解决办法:设置->显示高级设置->关闭硬件加速

  6. Struts和Spring MVC的比较(非原创)

    文章大纲 一.Spring MVC项目例子二.Struts项目例子三.Struts和Spring MVC对比四.参考文章   一.Spring MVC项目例子 https://www.jianshu. ...

  7. Unity引擎的Player Settings介绍

    我用的是unity5.4.3版本的 一.窗口打开: 从菜单栏查看播放器设置,选择 Edit->Project Settings->Player 二.全局设置 第一部分: Company N ...

  8. 使用Ajax验证用户名

    Ajax是一项很重要的技术,下面简要举个例子,来解释如何使用Ajax.步骤如下:使用Ajax验证用户名使用文本框的onBlur事件 使用Ajax技术实现异步交互创建XMLHttpRequest对象通过 ...

  9. 西门子Step7中DB块结构导出

    Step7 通过变量表可以导出内存M地址和I,Q,T,C地址的变量,以及DB块的名称.怎么导出DB块的内部结构结构呢.即如何导出结构内的定义呢? 可以通过“选择某个DB块”,通过菜单命令“File&g ...

  10. (转)C#开发微信门户及应用(5)--用户分组信息管理

    http://www.cnblogs.com/wuhuacong/p/3695351.html 在上个月的对C#开发微信门户及应用做了介绍,写过了几篇的随笔进行分享,由于时间关系,间隔了一段时间没有继 ...