• 在ArcEngine下实现图层属性过滤的两种方法 转载http://www.gisall.com/html/72/1242722990.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();

            }

     

             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;

                }

            }

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

    来自http://www.gisall.com/html/72/124272-2990.html

  • 相关阅读:
    HTML 与 HTML 页面之间动态传值的问题
    maven 导入本地项目(JQuery中的绝杀 $("表单").serialize() 可以自动提交表格数据)+邮件发送+通用的Servlet写法
    linux服务器nginx的卸载
    http协议
    所谓的批量删除
    查看本机ssh公钥,生成公钥
    centos7 redis5编译安装
    linux没有ll等命令的解决办法
    Linux 安装python3.7.0
    CentOS7 安装mysql
  • 原文地址:https://www.cnblogs.com/gisoracle/p/2855437.html
Copyright © 2020-2023  润新知