[ArcEngine]IFeatureBuffer使用
1 public static void LoadOnlyModeInsert(IFeatureClass featureClass, List < IGeometry > 2 geometryList) 3 { 4 // Cast the feature class to the IFeatureClassLoad interface. 5 IFeatureClassLoad featureClassLoad = (IFeatureClassLoad)featureClass; 6 7 // Acquire an exclusive schema lock for the class. 8 ISchemaLock schemaLock = (ISchemaLock)featureClass; 9 try 10 { 11 schemaLock.ChangeSchemaLock(esriSchemaLock.esriExclusiveSchemaLock); 12 13 // Enable load-only mode on the feature class. 14 featureClassLoad.LoadOnlyMode = true; 15 using(ComReleaser comReleaser = new ComReleaser()) 16 { 17 // Create the feature buffer. 18 IFeatureBuffer featureBuffer = featureClass.CreateFeatureBuffer(); 19 comReleaser.ManageLifetime(featureBuffer); 20 21 // Create an insert cursor. 22 IFeatureCursor insertCursor = featureClass.Insert(true); 23 comReleaser.ManageLifetime(insertCursor); 24 25 // All of the features to be created are classified as Primary Highways. 26 int typeFieldIndex = featureClass.FindField("TYPE"); 27 featureBuffer.set_Value(typeFieldIndex, "Primary Highway"); 28 29 foreach (IGeometry geometry in geometryList) 30 { 31 // Set the feature buffer's shape and insert it. 32 featureBuffer.Shape = geometry; 33 insertCursor.InsertFeature(featureBuffer); 34 } 35 36 // Flush the buffer to the geodatabase. 37 insertCursor.Flush(); 38 } 39 } 40 catch (Exception) 41 { 42 // Handle the failure in a way appropriate to the application. 43 } 44 finally 45 { 46 // Disable load-only mode on the feature class. 47 featureClassLoad.LoadOnlyMode = false; 48 49 // Demote the exclusive schema lock to a shared lock. 50 schemaLock.ChangeSchemaLock(esriSchemaLock.esriSharedSchemaLock); 51 } 52 }
作者:太一吾鱼水
文章未经说明均属原创,学习笔记可能有大段的引用,一般会注明参考文献。
欢迎大家留言交流,转载请注明出处。
分类:
ArcGIS Engine
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程