IFeatureLayerDefinition接口查询要素图层方法汇总

来源:互联网 发布:svg js设置 transform 编辑:程序博客网 时间:2024/06/16 17:55

参考了网上大量方法,都能成功运行
方法1:实现新建查询图层,查询结果要素为选中状态
思路:新建IFeatureSelection接口,选中图层要素,利用IQueryFilter创建过滤器,设置查询条件,IFeatureLayerDefinition创建查询图层,最后添加到map中去
引用

using ESRI.ArcGIS.Carto; using ESRI.ArcGIS.Controls; using
ESRI.ArcGIS.Geodatabase; using ESRI.ArcGIS.Geometry; using
ESRI.ArcGIS.SystemUI; using System; using System.IO;
usingSystem.Windows.Forms;

主要实现代码:

     ILayer pLayer = (ILayer)axMapControl1.Map.get_Layer(0);            IFeatureLayer pFeatureLayer = pLayer as IFeatureLayer;            //QI到FeatureSelection           IFeatureSelection pFeatureSelection = pFeatureLayer as IFeatureSelection;            //创建过滤器            IQueryFilter pQueryFilter = new QueryFilterClass();            //设置过滤器对象的查询条件            pQueryFilter.WhereClause = "FID > 20";            //根据查询条件选择要素            pFeatureSelection.SelectFeatures(pQueryFilter, esriSelectionResultEnum.esriSelectionResultNew, false);            IFeatureLayerDefinition pFDefinition = pFeatureLayer as IFeatureLayerDefinition;            //创建新图层           IFeatureLayer pNewFeatureLayer = pFDefinition.CreateSelectionLayer(pFeatureLayer.Name, false, null, null);//若为true,则未选中要素不显示           pNewFeatureLayer.Name = "查询结果城市";           axMapControl1.AddLayer(pNewFeatureLayer as ILayer);           axMapControl1.ActiveView.Refresh(); 

方法2:

阅读全文
0 0