ArcGIS Pro注记编辑
internal class ChangeSymbol : Button { protected async override void OnClick() { var annoLayer = MapView.Active.Map.GetLayersAsFlattenedList().OfType<AnnotationLayer>().FirstOrDefault(); if (annoLayer == null) return; await QueuedTask.Run(() => { var select = annoLayer.GetSelection(); if (select.GetObjectIDs().Count() > 0) { var oid = select.GetObjectIDs().First(); QueryFilter qf = new QueryFilter() { WhereClause = $"OBJECTID = {oid}" }; var rowCursor = annoLayer.GetTable().Search(qf, false); rowCursor.MoveNext(); var annoFeature = rowCursor.Current as ArcGIS.Core.Data.Mapping.AnnotationFeature; var graphic = annoFeature.GetGraphic(); var textGraphic = graphic as CIMTextGraphic; var op = new EditOperation(); op.Name = "Change Anno"; op.Callback((context) => { //make the callout for the circle var callOut = new CIMPointSymbolCallout(); callOut.PointSymbol = new CIMPointSymbol(); //Circle outline var circle_outline = SymbolFactory.Instance.ConstructMarker(40, "ESRI Default Marker") as CIMCharacterMarker; circle_outline.Size = 30; //eliminate the outline foreach (var layer in circle_outline.Symbol.SymbolLayers) { if (layer is CIMSolidStroke) { ((CIMSolidStroke) layer).Width = 0; } } //Circle fill var circle_fill = SymbolFactory.Instance.ConstructMarker(172, "ESRI Default Marker") as CIMCharacterMarker; circle_fill.Size = 30; //eliminate the outline, make sure the fill is white foreach (var layer in circle_fill.Symbol.SymbolLayers) { if (layer is CIMSolidFill) { ((CIMSolidFill)layer).Color = ColorFactory.Instance.WhiteRGB; } else if (layer is CIMSolidStroke) { ((CIMSolidStroke)layer).Width = 0; } } var calloutLayers = new List<CIMSymbolLayer>(); calloutLayers.Add(circle_outline); calloutLayers.Add(circle_fill); //set the layers on the callout callOut.PointSymbol.SymbolLayers = calloutLayers.ToArray(); //set the callout on the text symbol var textSym = textGraphic.Symbol.Symbol as CIMTextSymbol; textSym.Callout = callOut; textSym.Height = 8;//adjust as needed //now set the text textGraphic.Text = "12 <SUP><UND>00</UND></SUP>"; annoFeature.SetGraphic(textGraphic); annoFeature.Store(); context.Invalidate(annoFeature); }, annoLayer.GetTable()); op.Execute(); } }); } } Related Text Annotation displaying problem Formatting in Add-in Description Dynamic text renderer How to access or set Text Symbol from Table Frame ... Number format in colorizer Related Tags arcgis pro sdkarcgis procarcgisprosdkpro sdkarcgisprosdkarcgis pro sdk for .netarcgisarcgis pro sdk 2.5 View All ≫
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
2019-05-13 Python可变参数函数用法详解
2019-05-13 ArcGIS Python 获得坐标
2011-05-13 arcgis tin内存溢出解决办法
2011-05-13 ArcGIS10 数据建模 每日一贴 花边图框制作
2011-05-13 ArcGIS10 三维成果展示