ARCGIS PRO SDK 利用几何对象集合创建多行注记

利用几何对象GeometryBag创建多行注记,选择编辑效果如下图

如果采用点放置,效果如下

利用几何对象GeometryBag创建多行注记实现代码:

复制代码
'''zg:字高
'''zk:字宽
'''zt:字体名称
'''ys:字体重
'''selectedColor:颜色
'''PP MapPoint点
'''AnnoLayer 写入 AnnotationLayer  注记类图层
Dim AnnoLayer As AnnotationLayer
Dim annoFCDef As AnnotationFeatureClassDefinition
Dim txtSymbol As CIMTextSymbol
Dim PsymbolRef As CIMSymbolReference
Dim PCIMTextGraphic As CIMTextGraphic
Dim PannoFeat As AnnotationFeature
Dim selectedColor As CIMColor
Dim pp As MapPoint
Dim dx As Double, dy As Double
Dim zj_text As String
Dim PannoFeat As AnnotationFeature
Dim pFeature As Feature
Await QueuedTask.Run(Sub()
                         pAnnoFeatureClass = AnnoLayer.GetFeatureClass
                         dx = PP.X
                         dy = PP.Y
                         txtSymbol = SymbolFactory.Instance.ConstructTextSymbol(selectedColor)
                         rowBuffer = pAnnoFeatureClass.CreateRowBuffer()
                         pFeature = pAnnoFeatureClass.CreateRow(rowBuffer)
                         PannoFeat = pFeature
                         PannoFeat.SetStatus(AnnotationStatus.Placed)
                         PannoFeat.SetAnnotationClassID(1)
                         PCIMTextGraphic = New CIMTextGraphic()
                         zj_text = "神坊村九组" & vbLf & "神坊村<CHR spacing='-15'>---------------------------------------</CHR>40.53" & vbLf & "DK0001"
                         PCIMTextGraphic.Text = zj_text
                         Dim pGeometryBagBuilder As GeometryBagBuilderEx = New GeometryBagBuilderEx(RF1)
                         Dim builder As ArcGIS.Core.Geometry.GeometryBag
                         Dim builline As ArcGIS.Core.Geometry.Polyline
                         Dim newPoints1 As New List(Of Coordinate2D)()
                         For i As Integer = 0 To 2
                             newPoints1 = New List(Of Coordinate2D)()
                             If i = 0 Then
                                 newPoints1.Add(New Coordinate2D(dx, dy + zg * zjhj * DQBLC / 1000))
                                 newPoints1.Add(New Coordinate2D(dx + zg * 3 * DQBLC / 1000, dy + zg * zjhj * DQBLC / 1000))
                             End If
                             If i = 1 Then
                                 newPoints1.Add(New Coordinate2D(dx, dy))
                                 newPoints1.Add(New Coordinate2D(dx + zg * 3 * DQBLC / 1000, dy))
                             End If
                             If i = 2 Then
                                 newPoints1.Add(New Coordinate2D(dx, dy - zg * zjhj * DQBLC / 1000))
                                 newPoints1.Add(New Coordinate2D(dx + zg * 3 * DQBLC / 1000, dy - zg * zjhj * DQBLC / 1000))
                             End If
                             builline = New PolylineBuilderEx(newPoints1).ToGeometry
                             pGeometryBagBuilder.AddGeometry(builline)
                         Next
                         builder = pGeometryBagBuilder.ToGeometry
                         PCIMTextGraphic.Shape = builder
                         txtSymbol.Angle = dAngle     '获取或设置应用于文本符号的旋转量 (以度为单位),以几何图形为单位。
                         txtSymbol.SetColor(selectedColor)
                         txtSymbol.HorizontalAlignment =                                                   ArcGIS.Core.CIM.HorizontalAlignment.Left
                         txtSymbol.VerticalAlignment = ArcGIS.Core.CIM.VerticalAlignment.Center
                         txtSymbol.SetSize(zg)
                         txtSymbol.FontStyleName = ys
                         txtSymbol.FontFamilyName = zt    '字体家庭名称
                         txtSymbol.Height = zg
                         txtSymbol.LetterWidth = zk / zg * 100%
                         PsymbolRef = New CIMSymbolReference()
                         PsymbolRef.Symbol = txtSymbol
                         PCIMTextGraphic.Symbol = PsymbolRef
                         PannoFeat.SetGraphic(PCIMTextGraphic)
                         pFeature.Store()
                     End Sub)
相关推荐
奔跑的呱呱牛20 小时前
arcgis-to-geojson双向转换工具库
arcgis·json
da-peng-song2 天前
ArcGIS Desktop使用入门(四)—— 解决ArcGIS 界面字太小,DPI分辨率高
arcgis·界面字体小
liuccn3 天前
使用GDAL实现栅格数据的瓦片生成
arcgis
qq_283720053 天前
Nest.js 连接达梦 DM8 数据库实战和避坑指南
arcgis
liuccn4 天前
GeoTools跟GDAL 库的关系与区别以及应用场景
java·arcgis
trojan__4 天前
arcgis如何自定义图例
arcgis
角砾岩队长6 天前
ArcGIS属性字段常见计算方法
arcgis
AAIshangyanxiu7 天前
基于ArcGIS、InVEST与RUSLE水土流失模拟及分析
arcgis·土壤侵蚀·invest·水土流失·rusle
2401_863801468 天前
从加载GLTF中提取全局顶点位置的问题
arcgis
跟着珅聪学java9 天前
electron 安装教程
javascript·arcgis·electron