您的位置:首页 > Web前端

CreateMemoryFeatureClass

2017-07-04 21:04 323 查看
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         }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: