5.6 属性查询实例
查询人口大于50000000的城市,并把查询结果创建为一个新的图层。
程序执行效果如下:
图1:基础MXD文件(注意属性表)
图2:查询功能实现
图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 }