1、C# AE 中创建点状 Shp 文件今天将点写入一个新的 SHP 文件中,自己先做了一个简单试验,一切正常。代码如下private void CreateShpFromPoint()ISpatialReference pSpatialReference = this.axMapData.ActiveView.FocusMap.SpatialReference;string strShapeFolder=“C:/“;string strShapeFile = “test.shp“;string shapeFileFullName = strShapeFolder strShapeFile;IWo
2、rkspaceFactory pWorkspaceFactory= new ShapefileWorkspaceFactory();IFeatureWorkspace pFeatureWorkspace = (IFeatureWorkspace) pWorkspaceFactory.OpenFromFile(strShapeFolder, 0);IFeatureClass pFeatureClass;if (File.Exists(shapeFileFullName)pFeatureClass = pFeatureWorkspace.OpenFeatureClass(strShapeFile)
3、;IDataset pDataset = (IDataset)pFeatureClass;pDataset.Delete();IFields pFields = new FieldsClass();IFieldsEdit pFieldsEdit = (IFieldsEdit)pFields;IField pField = new FieldClass();IFieldEdit pFieldEdit = (IFieldEdit)pField;pFieldEdit.Name_2 = “SHAPE“;pFieldEdit.Type_2 = esriFieldType.esriFieldTypeGeo
4、metry;IGeometryDefEdit pGeoDef = new GeometryDefClass();IGeometryDefEdit pGeoDefEdit = (IGeometryDefEdit)pGeoDef;pGeoDefEdit.GeometryType_2 = esriGeometryType.esriGeometryPoint;pGeoDefEdit.SpatialReference_2 = pSpatialReference; /new UnknownCoordinateSystemClass();pFieldEdit.GeometryDef_2 = pGeoDef;
5、pFieldsEdit.AddField(pField);pField = new FieldClass();pFieldEdit = (IFieldEdit)pField;pFieldEdit.Name_2 = “ID“;pFieldEdit.Type_2 = esriFieldType.esriFieldTypeString;pFieldsEdit.AddField(pField);pField = new FieldClass();pFieldEdit = (IFieldEdit)pField;pFieldEdit.Name_2 = “Pixels“;pFieldEdit.Type_2
6、= esriFieldType.esriFieldTypeInteger;pFieldsEdit.AddField(pField);pFeatureClass = pFeatureWorkspace.CreateFeatureClass(strShapeFile, pFields, null, null, esriFeatureType.esriFTSimple, “SHAPE“, “);IPoint pPoint = new PointClass();pPoint.X = 113.0;pPoint.Y = 23.0;IFeature pFeature = pFeatureClass.Crea
7、teFeature();pFeature.Shape = pPoint;pFeature.set_Value(pFeature.Fields.FindField(“ID“), “D-1“);pFeature.set_Value(pFeature.Fields.FindField(“Pixels“), 1);pFeature.Store();IFeatureLayer pFeaturelayer = new FeatureLayerClass();pFeaturelayer.FeatureClass = pFeatureClass;pFeaturelayer.Name = “layer“;this.axMapData.AddLayer(pFeaturelayer);