ARCGIS PRO DSK GraphicsLayer创建文本要素

一、判断GraphicsLayer层【地块注记】是否存在,如果不存在则新建、如果存在则删除所有要素

Dim GraphicsLayer = pmap.GetLayersAsFlattenedList().OfType(Of ArcGIS.Desktop.Mapping.GraphicsLayer).FirstOrDefault() '获取当前map对象中的GetLayer图层
Await QueuedTask.Run(Sub()If GraphicsLayer Is Nothing = True Then'创建 GraphicsLayerIf pmap.MapType <> MapType.Map Then Exit Sub       ' Not 2DDim gl_param = New GraphicsLayerCreationParamsgl_param.Name = "地块注记"'默认情况下会添加到目录的顶部GraphicsLayer = LayerFactory.Instance.CreateLayer(Of ArcGIS.Desktop.Mapping.GraphicsLayer)(gl_param, pmap)Else'全选文本Dim zj_zdmane As String = ""zj_zdmane = "地块注记"Dim elements = GraphicsLayer.GetElementsAsFlattenedList().Where(Function(gele As GraphicElement) gele.Name.StartsWith(zj_zdmane)) ’获取GetLayer图层中定义的元素(本例为text)'删除选择textGraphicsLayer.SelectElements(elements)GraphicsLayer.RemoveElements(GraphicsLayer.GetSelectedElements())End IfMapView.Active.Redraw(True)  '视图刷新End Sub)

二、CreateTextGraphicElement 方法
       ​GraphicElement CreateTextGraphicElement( 
                IElementContainer elementContainer,
                TextType textType,
                Geometry geometry,
                CIMTextSymbol textSymbol,
                string text,
                string elementName,
                bool select,                    【可选】
                ElementInfo elementInfo 【可选】
             )
             textType:要创建的文本图形的类型​

成员描述
CircleParagraph圆文本
EllipseParagraph椭圆文本
NoneNone- 默认
PointText点文本
PolygonParagraph多边形文本
RectangleParagraph矩形文本
SplinedText沿直线或曲线样条的文本

三、检查应用程序中是否有特定字体可用于 Pro 会话。 必须在 MCT 上调用此方法。IsFontAvailable 方法 (SymbolFactory)
public bool IsFontAvailable( 
                  string fontName,   
                  string fontStyle,
                  FontType fontType,
                  List<CIMFontVariation> fontVariationSettings
               )
               fontName:字体簇的名称。
               fontStyle :字体样式的名称。
               fontType:字体类型。
               fontVariationSettings:要应用的任何字体变体设置。可以为 null。
返回值:一个布尔值,表示字体是否可用。例如:

Dim BOOT=SymbolFactory.Instance.IsFontAvailable("Arial", "Bold", FontType.Unspecified, null)

四、创建文本
1、创建简单的文本符号(Creates a simple text symbol)创建一个大小为8.5、字体系列为“Corbel”、字体样式为“Regular”的简单黑色文本符号。

Await QueuedTask.Run(Sub()pmap = MapView.Active.Map  ‘获取激活的map对象Dim GraphicsLayer = pmap.GetLayersAsFlattenedList().OfType(Of ArcGIS.Desktop.Mapping.GraphicsLayer).FirstOrDefault()  ‘获取的GraphicsLayer对象Dim TextSymbol =SymbolFactory.Instance.ConstructTextSymbol(ColorFactory.Instance.BlackRGB, 8.5, "Corbel", "Regular")'文本的偏移量TextSymbol.OffsetX = 0.5TextSymbol.OffsetY = 0.5Dim Location As MapPoint = MapPointBuilderEx.CreateMapPoint(PX,PY)Dim text As String = "Forest Grove"Dim polyTxtElm As GraphicElement = ElementFactory.Instance.CreateTextGraphicElement(GraphicsLayer, TextType.PointText, Location, TextSymbol, text, "地块注记")End Sub)

效果:

2、创建创建带有光晕环的文本符号(Creates a text symbol with a halo)

Await QueuedTask.Run(Sub()pmap = MapView.Active.Map  ‘获取激活的map对象Dim GraphicsLayer = pmap.GetLayersAsFlattenedList().OfType(Of ArcGIS.Desktop.Mapping.GraphicsLayer).FirstOrDefault()  ‘获取的GraphicsLayer对象Dim haloPoly = SymbolFactory.Instance.ConstructPolygonSymbol(ColorFactory.Instance.RedRGB, SimpleFillStyle.Solid)Dim TextSymbol = SymbolFactory.Instance.ConstructTextSymbol(haloPoly, 10, "Arial", "Bold")'文本的偏移量TextSymbol.OffsetX = 0.5TextSymbol.OffsetY = 0.5Dim Location As MapPoint = MapPointBuilderEx.CreateMapPoint(PX,PY)Dim text As String = "Portland"Dim polyTxtElm As GraphicElement = ElementFactory.Instance.CreateTextGraphicElement(GraphicsLayer, TextType.PointText, Location, TextSymbol, text, "地块注记")End Sub)

 效果:

3、创建简单的牵引文本符号(Creates a text symbol with a halo)

Await QueuedTask.Run(Sub()pmap = MapView.Active.Map  ‘获取激活的map对象Dim GraphicsLayer = pmap.GetLayersAsFlattenedList().OfType(Of ArcGIS.Desktop.Mapping.GraphicsLayer).FirstOrDefault()  ‘获取的GraphicsLayer对象Dim textSymbol = SymbolFactory.Instance.ConstructTextSymbol(ColorFactory.Instance.BlackRGB, 10, "Verdana", "Regular")Dim lineCalloutSymbol = new CIMSimpleLineCallout()Dim lineSymbol = SymbolFactory.Instance.ConstructLineSymbol(ColorFactory.Instance.BlackRGB, 1, SimpleLineStyle.DashDotDot)lineCalloutSymbol.LineSymbol = lineSymbol'文本的偏移量TextSymbol.OffsetX = 10TextSymbol.OffsetY = 10textSymbol.Callout = lineCalloutSymbolDim Location As MapPoint = MapPointBuilderEx.CreateMapPoint(PX,PY)Dim text As String = "Forest Grove"Dim polyTxtElm As GraphicElement = ElementFactory.Instance.CreateTextGraphicElement(GraphicsLayer, TextType.PointText, Location, TextSymbol, text, "地块注记")End Sub)

效果:

4、创建圆角矩形的牵引文本框符号(Creates a balloon callout text symbol)

Await QueuedTask.Run(Sub()pmap = MapView.Active.Map  ‘获取激活的map对象Dim GraphicsLayer = pmap.GetLayersAsFlattenedList().OfType(Of ArcGIS.Desktop.Mapping.GraphicsLayer).FirstOrDefault()  ‘获取的GraphicsLayer对象Dim Location As MapPoint = MapPointBuilderEx.CreateMapPoint(PX,PY)Dim textSymbol = SymbolFactory.Instance.ConstructTextSymbol(ColorFactory.Instance.WhiteRGB, 11, "Corbel", "Regular")Dim balloonCallout = new CIMBalloonCallout()BalloonCallout.BalloonStyle = BalloonCalloutStyle.RoundedRectangleDim polySymbol = SymbolFactory.Instance.ConstructPolygonSymbol(ColorFactory.Instance.BlackRGB, SimpleFillStyle.Solid)BalloonCallout.BackgroundSymbol = polySymbolBalloonCallout.Margin = new CIMTextMarginWith BalloonCallout.Margin.Left = 5.Right = 5.Bottom = 5.Top = 5End WithTextSymbol.Callout = balloonCalloutDim text As String = "Forest Grove"Dim polyTxtElm As GraphicElement = ElementFactory.Instance.CreateTextGraphicElement(GraphicsLayer, TextType.RectangleParagraph, Location, TextSymbol, text, "地块注记")End Sub)

效果:

5、创建点符号的文本符号(Creates a point callout text symbol)

Await QueuedTask.Run(Sub()pmap = MapView.Active.Map  ‘获取激活的map对象Dim GraphicsLayer = pmap.GetLayersAsFlattenedList().OfType(Of ArcGIS.Desktop.Mapping.GraphicsLayer).FirstOrDefault()  ‘获取的GraphicsLayer对象Dim textSymbol = SymbolFactory.Instance.ConstructTextSymbol(ColorFactory.Instance.WhiteRGB, 6, "Tahoma", "Bold")Dim shieldCalloutSymbol = new CIMPointSymbolCallout()Dim symbolStyleItem = GetPointSymbol("ArcGIS 2D", "Shield 1")             ShieldCalloutSymbol.PointSymbol = symbolStyleItem.Symbol as CIMPointSymbolShieldCalloutSymbol.PointSymbol.SetSize(18.0)TextSymbol.Callout = shieldCalloutSymbolDim Location As MapPoint = MapPointBuilderEx.CreateMapPoint(PX,PY)Dim text As String = "I5"Dim polyTxtElm As GraphicElement = ElementFactory.Instance.CreateTextGraphicElement(GraphicsLayer, TextType.PointText, Location, TextSymbol, text, "地块注记")End Sub)

效果:

6、创建设置矩形背景色的牵引文本框符号(Creates a background callout text symbol)

Await QueuedTask.Run(Sub()pmap = MapView.Active.Map  ‘获取激活的map对象Dim GraphicsLayer = pmap.GetLayersAsFlattenedList().OfType(Of ArcGIS.Desktop.Mapping.GraphicsLayer).FirstOrDefault()  ‘获取的GraphicsLayer对象Dim Location As MapPoint = MapPointBuilderEx.CreateMapPoint(PX,PY)Dim textSymbol = SymbolFactory.Instance.ConstructTextSymbol(ColorFactory.Instance.BlackRGB, 8, "Tahoma", "Bold")Dim backgroundCalloutSymbol = new CIMBackgroundCallout()Dim lineSymbol = SymbolFactory.Instance.ConstructLineSymbol(ColorFactory.Instance.BlackRGB, 1, SimpleLineStyle.DashDotDot)Dim aquaBackground = ColorFactory.Instance.CreateRGBColor(190, 255, 232, 100)Dim polySymbol = SymbolFactory.Instance.ConstructPolygonSymbol(aquaBackground, SimpleFillStyle.Solid)BackgroundCalloutSymbol.LeaderLineSymbol = lineSymbolTextSymbol.OffsetX = 10TextSymbol.OffsetY = 10BackgroundCalloutSymbol.BackgroundSymbol = polySymbolDim accentSymbol = SymbolFactory.Instance.ConstructLineSymbol(ColorFactory.Instance.BlackRGB, 2, SimpleLineStyle.Solid)BackgroundCalloutSymbol.AccentBarSymbol = accentSymbolBackgroundCalloutSymbol.Margin = new CIMTextMarginWith BalloonCallout.Margin.Left = 5.Right = 5.Bottom = 5.Top = 5End WithTextSymbol.Callout = backgroundCalloutSymbolDim text As String = "Forest Grove"Dim polyTxtElm As GraphicElement = ElementFactory.Instance.CreateTextGraphicElement(GraphicsLayer,TextType.RectangleParagraph, poly, TextSymbol, text, "地块注记")End Sub)

效果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/51102.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用python解释进程与协程(python实例二十八)

目录 1.认识Python 2.环境与工具 2.1 python环境 2.2 Visual Studio Code编译 3.创建进程池&#xff0c;异步执行多个任务 3.1 代码构思 3.2 代码示例 3.3 运行结果 4. 模拟协程堵塞 4.1 代码构思 4.2 代码示例 4.3 运行结果 5.总结 1.认识Python Python 是一个高…

Javascript前端面试(七)

JavaScript 部分 1. JavaScript 有哪些数据类型&#xff0c;它们的区别&#xff1f; JavaScript 共有八种数据类型&#xff0c;分别是 Undefined、Null、Boolean、 Number、String、Object、Symbol、BigInt。 其中 Symbol 和 BigInt 是 ES6 中新增的数据类型&#xff1a; ●Sym…

04-Charles中的Map Remote和Map Local介绍

Charles提供了Map Remote和Map Local两个功能。 Map Remote是将指定的网络请求重定向到另一个网址。Map Local是将指定的网络请求重定向到本地文件。 一、Map Remote 假设代码中调用了接口A&#xff0c;但是接口A的响应结果不能满足需求&#xff1b;此时&#xff0c;有另一个…

SAPUI5基础知识18 - 自定义CSS和主题色

1. 背景 在上一篇博客中&#xff0c;我们通过使用SAPUI5提供的CSS类实现元素间距的调整。在本篇博客中&#xff0c;让我们看一下如何实现自定义的CSS样式。 2. 背景知识 2.1 CSS基础语法 CSS&#xff0c;全称为级联样式表&#xff08;Cascading Style Sheets&#xff09;&a…

【更新2023】省级农林牧渔业产值面板数据 含分项 1949-2023

省级农林牧渔业产值面板数据是研究农业经济和区域发展的重要资源。这些数据可以被用来分析不同省份间农业产值的时空变化及其影响因素&#xff0c;探讨政策对农业发展的影响&#xff0c;评估农业现代化和可持续发展水平&#xff0c;以及比较不同地区农业产值的竞争力和效率。此…

python学习笔记——字符串

一、创建字符串 1.我们可以使用引号( 或 " )来创建字符串。创建字符串很简单&#xff0c;只要为变量分配一个值即可。 var1 Hello World! var2 "Runoob" 二、访问字符串中的值 1.Python 访问子字符串&#xff0c;可以使用方括号 [] 来截取字符串。…

在Android上实现汉字笔顺动画效果——HanZiWriter

序&#xff0c;万般皆是命&#xff0c;半点不由人。 Hanzi Writer 是 javascript 免费开源库&#xff0c;根据汉字书写时按照笔画顺序的特征&#xff0c;可以播放正确笔画顺序的描边动画和练习测试。支持简体字和繁体字。可以让全球用户能够通过手绘模仿的方式来学习和练习书写…

Python网络爬虫详解:实战豆瓣电影信息采集

文章目录 前言一、爬虫是什么&#xff1f;二、常用库及其作用1.Requests2.BeautifulSoup3. lxml4. Scrapy5. Selenium6. PyQuery7. Pandas8. JSON9. Time 三、实现步骤步骤一&#xff1a;环境准备步骤二&#xff1a;数据采集步骤三&#xff1a;数据处理步骤四&#xff1a;数据存…

算法日记day 19(找树左下角的值|路径总和)

一、找树左下角的值 题目&#xff1a; 给定一个二叉树的 根节点 root&#xff0c;请找出该二叉树的 最底层 最左边 节点的值。 假设二叉树中至少有一个节点。 示例 1: 输入: root [2,1,3] 输出: 1示例 2: 输入: [1,2,3,4,null,5,6,null,null,7] 输出: 7 思路&#xff1a;…

[Windows CMD] 检测网络连通性 ping

ping 是一个非常常用的网络工具&#xff0c;用于测试网络连接的可达性和测量网络延迟。它通过发送 ICMP (Internet Control Message Protocol) Echo Request 数据包到目标主机&#xff0c;并等待接收回显应答 (Echo Reply) 来工作。ping 命令可以帮助您快速检测网络问题&#x…

2021真题-架构师案例(四)

问题1&#xff08;16分&#xff09; 针对该系统功能&#xff0c;赵工建议解释器架构风格&#xff0c;李工建议管道过滤架构风格&#xff0c;王工则建议饮食调用&#xff0c;该系统从灵活性和可扩展性考虑&#xff0c;应采用哪种&#xff1f; 解析&#xff1a; 管道-过滤器&am…

lua 游戏架构 之 游戏 AI (九)ai_mgr Ai管理

定义ai_mgr的类&#xff0c;用于管理游戏中实体的AI组件。 先定义 AI行为枚举和优先级&#xff1a; lua 游戏架构 之 游戏 AI &#xff08;八&#xff09;ai_tbl 行为和优先级-CSDN博客https://blog.csdn.net/heyuchang666/article/details/140712839?spm1001.2014.3001.55…

[原理] 可变性卷积(deformable convolution)原理及代码解释

文章目录 前言提出问题核心思想代码理解模块初始化forward过程self.p_convself._get_pself._get_x_qself._reshape_x_offset 参考文献 前言 代码见&#xff1a;https://github.com/4uiiurz1/pytorch-deform-conv-v2/blob/master/deform_conv_v2.py 论文&#xff1a;https://ar…

【数据结构】使用栈实现综合计算器

首先初始化两个栈&#xff0c;数栈&#xff08;numStack&#xff09;用于存放数据&#xff0c;符号栈&#xff08;operStack&#xff09;用于存放运算符 计算思路 1.通过一个index值&#xff08;索引&#xff09;来遍历表达式 2.如果发现扫描到一个数字&#xff0c;就直接入数栈…

Python | TypeError: ‘function’ object is not subscriptable

Python | TypeError: ‘function’ object is not subscriptable 在Python编程中&#xff0c;遇到“TypeError: ‘function’ object is not subscriptable”这一错误通常意味着你尝试像访问列表、元组、字典或字符串等可订阅&#xff08;subscriptable&#xff09;对象那样去…

Javascript面试基础6(下)

获取页面所有checkbox 怎样添加、移除、移动、复制、创建和查找节点 在JavaScript中&#xff0c;操作DOM&#xff08;文档对象模型&#xff09;是常见的任务&#xff0c;包括添加、移除、移动、复制、创建和查找节点。以下是一些基本的示例&#xff0c;说明如何执行这些操作&a…

Java语言程序设计——篇九(2)

&#x1f33f;&#x1f33f;&#x1f33f;跟随博主脚步&#xff0c;从这里开始→博主主页&#x1f33f;&#x1f33f;&#x1f33f; 枚举类型 枚举类型的定义枚举类型的方法实战演练 枚举在switch中的应用实战演练 枚举类的构造方法实战演练 枚举类型的定义 [修饰符] enum 枚举…

医院影像平台源码,C/S体系结构的C#语言PACS系统全套商业源代码

医学学影像临床信息系统具有图像采集、显示、存储、传输和管理等功能&#xff0c;支持DICOM影像设备和非DICOM影像设备&#xff0c;可以识别CT、MR、CR/DR、X光、DSA、B超、NM、SC等设备的图像类型&#xff0c;可对数字影像进行无损压缩和有损压缩处理。C/S体系结构的多媒体数据…

湖仓一体架构解析:数仓架构选择(第48天)

系列文章目录 1、Lambda 架构 2、Kappa 架构 3、混合架构 4、架构选择 5、实时数仓现状 6、湖仓一体架构 7、流批一体架构 文章目录 系列文章目录前言1、Lambda 架构2、Kappa 架构3、混合架构4、架构选择5、实时数仓现状6、湖仓一体架构7、流批一体架构 前言 本文解析了Lambd…

Verilog语言和C语言的本质区别是什么?

在开始前刚好我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「C语言的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff01; 用老石的一句话其实很好说…