zoukankan      html  css  js  c++  java
  • 在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

  • 相关阅读:
    bzoj3159: 决战
    Codeforces Round #516 (Div. 1, by Moscow Team Olympiad) C
    Codeforces Round #516 (Div. 1, by Moscow Team Olympiad) B
    Codeforces Round #516 (Div. 1, by Moscow Team Olympiad) A
    loj 6401 字符串
    BZOJ5194 雪地靴
    BZOJ 4709 柠檬
    BZOJ 3343 魔法
    [8月16日绍兴]试剂
    设备塔
  • 原文地址:https://www.cnblogs.com/gisoracle/p/2855437.html
Copyright © 2011-2022 走看看