如何组织AxTOCControl里面的数据
如何组织AxTOCControl里面的数据,实际上是组织AXMapControl的数据,将添加的数据进行整理。代码在最后面。
思路参考自:
https://blog.csdn.net/u012488787/article/details/39028813 ,比想象的简单的多
加载图层事件:
http://zhihu.esrichina.com.cn/question/20551
http://help.arcgis.com/en/sdk/10.0/arcobjects_net/componenthelp/index.html#//004900000051000000
http://blog.sciencenet.cn/blog-971075-1016456.html
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | #region 图层分组方法 private void UpdateTOCControlLayers(AxMapControl axMap) { if (axMap.Map.LayerCount == 0) { return ; } IMapLayers mapLayers = axMap.Map as IMapLayers; //设置axtoccontrol的首层名称为“图层” axMap.Map.Name = "图层" ; List< string > listGroupLyrNames = new List< string >() { "总规" , "分规" , "控规" }; foreach ( string groupLayerName in listGroupLyrNames) { IGroupLayer basemapGroupLayer = new GroupLayerClass(); basemapGroupLayer.Name = groupLayerName; axMap.Map.AddLayer(basemapGroupLayer); //将所有要素图层作为二级目录 IEnumLayer enumLayer = LayersGetUtil.GetEnumLayer(axMapControl1.Map); enumLayer.Reset(); ILayer layer = enumLayer.Next(); while (layer != null ) { //如果图层名截取的字符串跟图层组名称相同 if (GetGroupNameOfLayer(layer) == groupLayerName) { mapLayers.MoveLayerEx( null , basemapGroupLayer, layer, 0); } layer = enumLayer.Next(); } basemapGroupLayer.Expanded = false ; } } private string GetGroupNameOfLayer(ILayer layer) { string matchGroupName = null ; IDataLayer dataLayer = layer as IDataLayer; IDatasetName datasetName = dataLayer.DataSourceName as IDatasetName; string groupName = datasetName.Name.Substring(0, 2); switch (groupName.ToUpper()) { case "ZG" : matchGroupName = "总规" ; break ; case "FG" : matchGroupName = "分规" ; break ; case "KG" : matchGroupName = "控规" ; break ; default : break ; } return matchGroupName; } #endregion<br> |
【推荐】国内首个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保姆级教程
2017-08-09 Arcengine 在SDE创建数据集提示应用程序未获得创建或修改此类型数据的方案的许可