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   jobgeo  阅读(367)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示