- public
void getSelectedFeature() -
{ -
try -
{ -
IMap map = axMapControl1.Map; -
ISelection selection = map.FeatureSelection; -
IEnumFeatureSetup iEnumFeatureSetup = (IEnumFeatureSetup)selection; -
iEnumFeatureSetup.AllFields = true; -
IEnumFeature enumFeature = (IEnumFeature)iEnumFeatureSetup; -
enumFeature.Reset(); -
IFeature feature = enumFeature.Next(); -
while (feature != null) -
{ -
string hehe = feature.get_Value(5).ToString(); -
MessageBox.Show(hehe); -
feature = enumFeature.Next(); -
} -
} -
catch (Exception e) -
{ -
} -
}
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;