5.6 属性查询实例
  查询人口大于50000000的城市,并把查询结果创建为一个新的图层。
  程序执行效果如下:

ArcEngine 9.3 学习笔记(九):地图查询(属性查询实例、空间查询实例)

图1:基础MXD文件(注意属性表)

ArcEngine 9.3 学习笔记(九):地图查询(属性查询实例、空间查询实例)

图2:查询功能实现

ArcEngine 9.3 学习笔记(九):地图查询(属性查询实例、空间查询实例)

图3:将选择集创建为新图层

代码如下:

 1         private void button2_Click(object sender, EventArgs e,AxMapControl axMapControl1)
 2         {
 3             IFeatureLayer pFeatureLayer = axMapControl1.get_Layer(0) as IFeatureLayer;
 4             // QI 到FeatureSelection
 5             IFeatureSelection pFeatureSelection = pFeatureLayer as IFeatureSelection;
 6             // 创建过滤器
 7             IQueryFilter pQueryFilter = new QueryFilterClass();
 8             // 设置过滤器对象的查询条件
 9             pQueryFilter.WhereClause = "人口>50000000";
10             // 根据查询条件选中要素
11             pFeatureSelection.SelectFeatures(pQueryFilter, esriSelectionResultEnum.esriSelectionResultNew, false);
12             // QI 到SelectionSet
13             ISelectionSet pSelectionSet = pFeatureSelection.SelectionSet;
14 
15             if (pSelectionSet.Count > 0)
16             {
17                 IFeatureLayerDefinition pFDefinition = pFeatureLayer as IFeatureLayerDefinition;
18                 // 创建新图层
19                 IFeatureLayer pNewFeatureLayer = pFDefinition.CreateSelectionLayer("newLayerName", true, null, null);
20                 pNewFeatureLayer.Name = "查询结果城市";
21                 axMapControl1.AddLayer(pNewFeatureLayer as ILayer);
22             }
23         }
View Code

相关文章:

  • 2021-06-19
  • 2021-11-17
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-07-22
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-08-27
  • 2021-12-10
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案