ArcEngine中使用IMap.FeatureSelection获取被选中的要素

来源:互联网 发布:重低音增强软件 编辑:程序博客网 时间:2024/05/17 18:23
  1. public void getSelectedFeature()    
  2.          
  3.            try    
  4.               
  5.             IMap map axMapControl1.Map;  
  6.             ISelection selection map.FeatureSelection;  
  7.             IEnumFeatureSetup iEnumFeatureSetup (IEnumFeatureSetup)selection;  
  8.             iEnumFeatureSetup.AllFields true 
  9.             IEnumFeature enumFeature (IEnumFeature)iEnumFeatureSetup;  
  10.             enumFeature.Reset();    
  11.             IFeature feature enumFeature.Next();    
  12.             while (feature != null   
  13.               
  14.                  string hehe feature.get_Value(5).ToString();  
  15.                  MessageBox.Show(hehe);  
  16.                feature enumFeature.Next();    
  17.                 
  18.               
  19.            catch (Exception e)    
  20.             
  21.             
  22.          

Feature和FeatureClass关系:

1、FeaturLayer是加载在地图文档中的数据层,只是要素类的表现形式;FeatureClass是一组空间实体的集合,在数据表中存储了统一的属性和行为,每一个FeatureClass都有一个Geometry类型,如shp文件;

2、IFeatureLayer继承自ILayer,IFeatureClass继承自IClass;

3、FeatureLayer可以创建自己的对象,而FeatureClass不行:

IFeatureClass=IFeatureLayer.FeatureClass 或者

IFeatureClass=IFeatureWorkspace.openFeatureClass("xx")


Feature是实现了Ifeature接口的实体类.它指要素类中的一个要素.
FeatureClass指要素类,FeatureLayer指要素图层,真正代表图层的还是FeatureClass,FeatureFLayer只是一个表层的东西,举个简单的例子,当某个图层的数据源丢失的时候,你就要去判断FeatureLayer.FeatureClass!=null ,
通过IfeatureClass.CreateFeature可以在要素类中创建一个要素,然后通过Store方法保存.

Feature和FeatureClass转换:IFeature pFeature = o as IFeature; IFeatureClass pFeatureClass = pFeature.Class as IFeatureClass;

0 0
原创粉丝点击