全国高分辨率土地利用数据服务 土地利用数据服务 土地覆盖数据服务 坡度数据服务 土壤侵蚀数据服务 全国各省市DEM数据服务 耕地资源空间分布数据服务 草地资源空间分布数据服务 林地资源空间分布数据服务 水域资源空间分布数据服务 建设用地空间分布数据服务 地形、地貌、土壤数据服务 分坡度耕地数据服务 全国大宗农作物种植范围空间分布数据服务
多种卫星遥感数据反演植被覆盖度数据服务 地表反照率数据服务 比辐射率数据服务 地表温度数据服务 地表蒸腾与蒸散数据服务 归一化植被指数数据服务 叶面积指数数据服务 净初级生产力数据服务 净生态系统生产力数据服务 生态系统总初级生产力数据服务 生态系统类型分布数据服务 土壤类型质地养分数据服务 生态系统空间分布数据服务 增强型植被指数数据服务
多年平均气温空间分布数据服务 多年平均降水量空间分布数据服务 湿润指数数据服务 大于0℃积温空间分布数据服务 光合有效辐射分量数据服务 显热/潜热信息数据服务 波文比信息数据服务 地表净辐射通量数据服务 光合有效辐射数据服务 温度带分区数据服务 山区小气候因子精细数据服务
全国夜间灯光指数数据服务 全国GDP公里格网数据服务 全国建筑物总面积公里格网数据服务 全国人口密度数据服务 全国县级医院分布数据服务 人口调查空间分布数据服务 收入统计空间分布数据服务 矿山面积统计及分布数据服务 载畜量及空间分布数据服务 农作物种植面积统计数据服务 农田分类面积统计数据服务 农作物长势遥感监测数据服务 医疗资源统计数据服务 教育资源统计数据服务 行政辖区信息数据服务
Landsat 8 高分二号 高分一号 SPOT-6卫星影像 法国Pleiades高分卫星 资源三号卫星 风云3号 中巴资源卫星 NOAA/AVHRR MODIS Landsat TM 环境小卫星 Landsat MSS 天绘一号卫星影像
创建要素类用到了 IFeatureWorkspace.CreateFeatureClass 方法,在这个方法中有众多的参数,为了满足这些参数,我们要学习和了解下面的接口。
IField,IFieldEdit,IFields,IFieldsEdit,IGeometryDef, IGeometryDefEdit接口
字段对应表中的一列,一个要素类必须有至少 2 个字段,而多个字段的集合就构成了字段集,在要素类中,有一个特殊的字段,描述了空间对象,我们称之为几何字段,其中 GeometryDef 是用来设计几何字段的。这个几何字段定义了要素类的类型, 比如说我们要在 Catalog 创建一个点要素类,那么我们必须指定
他的类型为 Point,如下图:
而上面这 6 个接口,其实是三类,以 Edit 结尾的接口是可写的,也就是说对字段,字段集合,以及几何字段的编辑都是通过后者完成的。空间数据的一个重要属性就是参考系,参考系也是在 GeometryDef 中定义的。
**注意 在 .NET 中,会遇到以“_2”结尾的属性,这些属性是可写的。**
//定义一个几何字段,类型为点类型
ISpatialReference pSpatialReference = axMapControl1.ActiveView.FocusMap.SpatialReference;
IGeometryDefEdit pGeoDef = new GeometryDefClass ();
IGeometryDefEdit pGeoDefEdit = pGeoDef as IGeometryDefEdit;
pGeoDefEdit.GeometryType_2 = esriGeometryType.esriGeometryPoint;
pGeoDefEdit.SpatialReference_2 = pSpatialReference;
//定义一个字段集合对象
IFields pFields = new FieldsClass ();
IFieldsEdit pFieldsEdit = (IFieldsEdit) pFields;
//定义单个的字段
IField pField = new FieldClass ();
IFieldEdit pFieldEdit = (IFieldEdit) pField;
pFieldEdit.Name_2 = "SHAPE";
pFieldEdit.Type_2 = esriFieldType.esriFieldTypeGeometry;
pFieldsEdit.AddField (pField);
pFieldEdit.GeometryDef_2 = pGeoDef;
//定义单个的字段,并添加到字段集合中
pField = new FieldClass(); pFieldEdit = (IFieldEdit)pField;
pFieldEdit.Name_2 = "STCD";
pFieldEdit.Type_2 = esriFieldType.esriFieldTypeString;
pFieldsEdit.AddField (pField);
//定义单个的字段,并添加到字段集合中
pField = new FieldClass(); pFieldEdit = (IFieldEdit)pField;
pFieldEdit.Name_2 = "SLM10";
pFieldEdit.Type_2 = esriFieldType.esriFieldTypeString;
pFieldsEdit.AddField (pField);
//定义单个的字段,并添加到字段集合中
pField = new FieldClass(); pFieldEdit = (IFieldEdit)pField;
pFieldEdit.Name_2 = "SLM20";
pFieldEdit.Type_2 = esriFieldType.esriFieldTypeString;
pFieldsEdit.AddField (pField);
//定义单个的字段,并添加到字段集合中
pField = new FieldClass(); pFieldEdit = (IFieldEdit)pField;
pFieldEdit.Name_2 = "SLM40";
pFieldEdit.Type_2 = esriFieldType.esriFieldTypeString;
pFieldsEdit.AddField (pField);
IWorkspaceFactory pFtWsFct = new AccessWorkspaceFactory ();
IFeatureWorkspace pWs = pFtWsFct.OpenFromFile (@"E:\arcgis\Engine\s.mdb", 0) as IFeatureWorkspace;
IFeatureClass pFtClass = pWs.CreateFeatureClass ("Test",pFields, null, null, esriFeatureType.esriFTSimple, "SHAPE",null)
运行结果
结果如下: