ArcGIS Pro属性颜色符号化
/// <summary> /// You must call this method on the MCT! /// </summary> /// <returns></returns> private CIMRenderer CreateUniqueValueRendererUsingColorTable(FeatureLayer lyrToColor, StandaloneTable colorTable) { //All of these methods have to be called on the MCT if (OnUIThread) throw new ArcGIS.Core.CalledOnWrongThreadException(); //make a dictionary with MapUnit and Color var dicMapUnitColor = new Dictionary<int, string>(); using (var rowCursor = colorTable.Search()) { while (rowCursor.MoveNext()) { using (var anyRow = rowCursor.Current) { dicMapUnitColor.Add((int)anyRow["MapUnit"], anyRow["Color"].ToString()); } } } //Create the Unique Value Renderer CIMUniqueValueRenderer uniqueValueRenderer = new CIMUniqueValueRenderer() { // set the value field Fields = new string[] { "MapUnit" } }; //Construct the list of UniqueValueClasses List<CIMUniqueValueClass> classes = new List<CIMUniqueValueClass>(); //define the unique values for each dicMapUnitColor entry foreach (var key in dicMapUnitColor.Keys) { var lstValue = new List<CIMUniqueValue>() { new CIMUniqueValue() { FieldValues = new string[] { key.ToString() } } }; var namedColor = System.Drawing.Color.FromName(dicMapUnitColor[key]); var theColor = CIMColor.CreateRGBColor(namedColor.R, namedColor.G, namedColor.B); classes.Add( new CIMUniqueValueClass() { Values = lstValue.ToArray(), Label = $@"Color: {dicMapUnitColor[key]}", Visible = true, Editable = true, Symbol = new CIMSymbolReference() { Symbol = SymbolFactory.Instance.ConstructPointSymbol( SymbolFactory.Instance.ConstructMarker(theColor, 20, SimpleMarkerStyle.Pushpin)) } } ); } //Add the classes to a group (by default there is only one group or "symbol level") // Unique value groups CIMUniqueValueGroup groupOne = new CIMUniqueValueGroup() { Heading = "By Color", Classes = classes.ToArray() }; uniqueValueRenderer.Groups = new CIMUniqueValueGroup[] { groupOne }; //Draw the rest with the default symbol uniqueValueRenderer.UseDefaultSymbol = true; uniqueValueRenderer.DefaultLabel = "All other values"; var defaultColor = CIMColor.CreateRGBColor(215, 215, 215); uniqueValueRenderer.DefaultSymbol = new CIMSymbolReference() { Symbol = SymbolFactory.Instance.ConstructPointSymbol( SymbolFactory.Instance.ConstructMarker(defaultColor, 15, SimpleMarkerStyle.Diamond)) }; return uniqueValueRenderer as CIMRenderer; }
分类:
ArcGIS Pro二次开发
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
2019-05-14 Arcgis python输出当前窗口
2019-05-14 ArcGIS Python 保存lyr
2011-05-14 python调用dll方法
2011-05-14 MAPGIS之打印心得
2011-05-14 ArcGIS10 数据建模 每日一贴 第二贴 影像批量切割