CreateMemoryFeatureClass

 1 public static IFeatureClass CreateMemoryFeatureClass(  
 2             ISpatialReference spatialReference, esriGeometryType geometryType, string name = "Temp")  
 3         {  
 4             // 创建内存工作空间  
 5             IWorkspaceFactory pWSF = new InMemoryWorkspaceFactoryClass();  
 6             IWorkspaceName pWSName = pWSF.Create("", "Temp", null, 0);  
 7             IName pName = (IName)pWSName;  
 8             IWorkspace memoryWS = (IWorkspace)pName.Open();  
 9   
10             IField field = new FieldClass();  
11             IFields fields = new FieldsClass();  
12             IFieldsEdit fieldsEdit = fields as IFieldsEdit;  
13             IFieldEdit fieldEdit = field as IFieldEdit;  
14   
15   
16             fieldEdit.Name_2 = "OBJECTID";  
17             fieldEdit.Type_2 = esriFieldType.esriFieldTypeOID;  
18             fieldEdit.IsNullable_2 = false;  
19             fieldEdit.Required_2 = false;  
20             fieldsEdit.AddField(field);  
21   
22             field = new FieldClass();  
23             fieldEdit = field as IFieldEdit;  
24             IGeometryDef geoDef = new GeometryDefClass();  
25             IGeometryDefEdit geoDefEdit = (IGeometryDefEdit)geoDef;  
26             geoDefEdit.AvgNumPoints_2 = 5;  
27             geoDefEdit.GeometryType_2 = geometryType;  
28             geoDefEdit.GridCount_2 = 1;  
29             geoDefEdit.HasM_2 = false;  
30             geoDefEdit.HasZ_2 = false;  
31             geoDefEdit.SpatialReference_2 = spatialReference;  
32             fieldEdit.Name_2 = "SHAPE";  
33             fieldEdit.Type_2 = esriFieldType.esriFieldTypeGeometry;  
34             fieldEdit.GeometryDef_2 = geoDef;  
35             fieldEdit.IsNullable_2 = true;  
36             fieldEdit.Required_2 = true;  
37             fieldsEdit.AddField(field);  
38   
39             field = new FieldClass();  
40             fieldEdit = field as IFieldEdit;  
41             fieldEdit.Name_2 = "Code";  
42             fieldEdit.Type_2 = esriFieldType.esriFieldTypeSmallInteger;  
43             fieldEdit.IsNullable_2 = true;  
44             fieldsEdit.AddField(field);  
45   
46             //创建要素类  
47             IFeatureWorkspace featureWorkspace = (IFeatureWorkspace)memoryWS;  
48             IFeatureClass featureClass = featureWorkspace.CreateFeatureClass(  
49                 name, fields, null, null, esriFeatureType.esriFTSimple, "SHAPE", "");  
50   
51             return featureClass;  
52         }  

 

posted on 2017-07-04 21:04  jobgeo  阅读(364)  评论(0编辑  收藏  举报

导航