当前位置: 首页 > news >正文

【ArcGIS Pro二次开发】(81):文本符号_CIMTextSymbol

CIMTextSymbol是用于绘制文本图形注释的文本符号。


0、属性

Angel文本符号的放置角度
BlockProgression多行文本的堆叠方向
Callout引线
DrawSoftHyphen连字符
FlipAngle文本翻转(镜像)到位的角度
FontEffects上下标
FontEncoding获取文字的Encoding
FontFamilyName字体名称
FontStyleName字形样式,例如粗体、斜体。
FontType字体样式,如宋体。
HaloSize描边大小
HaloSymbol描边符号
Height文本高度
HorizontalAlignment文本与几何体水平对齐的对齐类型
VerticalAlignment文本与几何体垂直对齐的对齐类型
IndentAfter后缩进
IndentBefore前缩进
IndentFirstLine首行缩进
LetterSpacing字间距
LetterWidth字宽度
LineGap行间距
LineGapType行间距类型
OffsetXX轴偏移
OffsetYY轴偏移
ShadowColor阴影颜色
ShadowOffsetX阴影X轴偏移
ShadowOffsetY阴影Y轴偏移
SmallCaps字母大小写
Strikethrough删除线
Symbol文字符号
TextDirection文字方向
Underline下划线
WordSpacing单词间距

1、创建CIMTextSymbol

// 创建一个CIMTextSymbol
CIMTextSymbol textSymbol = SymbolFactory.Instance.ConstructTextSymbol(ColorFactory.Instance.BlueRGB, 8, "Corbel", "Regular");

2、创建带描边的CIMTextSymbol

// 创建描边
CIMPolygonSymbol haloPoly = SymbolFactory.Instance.ConstructPolygonSymbol(ColorFactory.Instance.RedRGB, SimpleFillStyle.Solid);
// 创建文本标注
CIMTextSymbol textSymbol = SymbolFactory.Instance.ConstructTextSymbol(haloPoly, 10, "Arial", "Bold");

3、创建带引线的CIMTextSymbol

// 创建一个标注符号CIMTextSymbol
CIMTextSymbol textSymbol = SymbolFactory.Instance.ConstructTextSymbol(ColorFactory.Instance.BlackRGB, 10, "Verdana", "Regular");
// 创建一个引线CIMSimpleLineCallout
CIMSimpleLineCallout lineCalloutSymbol = new CIMSimpleLineCallout();
// 创建一个线符号CIMLineSymbol
CIMLineSymbol lineSymbol = SymbolFactory.Instance.ConstructLineSymbol(ColorFactory.Instance.BlackRGB, 1, SimpleLineStyle.DashDotDot);
// 将线符号应用给引线
lineCalloutSymbol.LineSymbol = lineSymbol;
// 设置标注文字的偏移量
textSymbol.OffsetX = 10;
textSymbol.OffsetY = 10;
// 应用引线给标注符号
textSymbol.Callout = lineCalloutSymbol;

4、创建气泡符号标注(圆角矩形)

// 创建一个标注符号CIMTextSymbol
CIMTextSymbol textSymbol = SymbolFactory.Instance.ConstructTextSymbol(ColorFactory.Instance.WhiteRGB, 11, "Corbel", "Regular");
// 创建一个气泡符号CIMBalloonCallout
CIMBalloonCallout balloonCallout = new CIMBalloonCallout();
// 设置气泡类型(圆角矩形)
balloonCallout.BalloonStyle = BalloonCalloutStyle.RoundedRectangle;
// 创建一个面符号CIMPolygonSymbol
CIMPolygonSymbol polySymbol = SymbolFactory.Instance.ConstructPolygonSymbol(ColorFactory.Instance.BlackRGB, SimpleFillStyle.Solid);
// 应用气泡符号的底为面符号
balloonCallout.BackgroundSymbol = polySymbol;
// 设置放置文字的边距
balloonCallout.Margin = new CIMTextMargin
{
    Left = 5,
    Right = 5,
    Bottom = 5,
    Top = 5
};
// 应用文本符号
textSymbol.Callout = balloonCallout;

5、创建点索引符号标注

// 创建一个标注符号CIMTextSymbol
CIMTextSymbol textSymbol = SymbolFactory.Instance.ConstructTextSymbol(ColorFactory.Instance.WhiteRGB, 6, "Tahoma", "Bold");
// 创建一个点索引符号CIMPointSymbolCallout
CIMPointSymbolCallout shieldCalloutSymbol = new CIMPointSymbolCallout();
// 从样式中获取符号(这里简写,获取方法需细化)
var symbolStyleItem = GetPointSymbol("ArcGIS 2D", "Shield 1");
// 应用符号
shieldCalloutSymbol.PointSymbol = symbolStyleItem.Symbol as CIMPointSymbol;
// 设置大小
shieldCalloutSymbol.PointSymbol.SetSize(18.0); //set symbol size
// 应用文本符号
textSymbol.Callout = shieldCalloutSymbol;

6、创建带引线带边框的CIMTextSymbol

// 创建一个标注符号CIMTextSymbol
CIMTextSymbol textSymbol = SymbolFactory.Instance.ConstructTextSymbol(ColorFactory.Instance.BlackRGB, 8, "Tahoma", "Bold");
// 创建一个索引底面框CIMBackgroundCallout
CIMBackgroundCallout backgroundCalloutSymbol = new CIMBackgroundCallout();
// 引线
// 创建一个线符号
CIMLineSymbol lineSymbol = SymbolFactory.Instance.ConstructLineSymbol(ColorFactory.Instance.BlackRGB, 1, SimpleLineStyle.DashDotDot);
// 创建一个面符号
CIMColor aquaBackground = ColorFactory.Instance.CreateRGBColor(190, 255, 232, 100);
CIMPolygonSymbol polySymbol = SymbolFactory.Instance.ConstructPolygonSymbol(aquaBackground, SimpleFillStyle.Solid);
// 应用引线
backgroundCalloutSymbol.LeaderLineSymbol = lineSymbol;
// 设置引线偏移量
textSymbol.OffsetX = 10;
textSymbol.OffsetY = 10;
// 应用面符号
backgroundCalloutSymbol.BackgroundSymbol = polySymbol;
// 设置边线
var accentSymbol = SymbolFactory.Instance.ConstructLineSymbol(ColorFactory.Instance.BlackRGB, 2, SimpleLineStyle.Solid);
backgroundCalloutSymbol.AccentBarSymbol = accentSymbol;
// 设置标注文字的偏移量
backgroundCalloutSymbol.Margin = new CIMTextMargin
{
    Left = 5,
    Right = 5,
    Top = 5,
    Bottom = 5
};
// 应用引线给标注符号
textSymbol.Callout = backgroundCalloutSymbol;

7、在视图中创建曲线文本

// 创建一条贝赛尔曲线
Coordinate2D pt1 = new Coordinate2D(3.6, 7.5);
Coordinate2D pt2 = new Coordinate2D(4.26, 8);
Coordinate2D pt3 = new Coordinate2D(4.93, 7.1);
Coordinate2D pt4 = new Coordinate2D(5.6, 7.5);
CubicBezierBuilderEx bez = new CubicBezierBuilderEx(pt1, pt2, pt3, pt4);
CubicBezierSegment bezSeg = bez.ToSegment();
Polyline bezPl = PolylineBuilderEx.CreatePolyline(bezSeg);

// 创建一个CIMTextSymbol
CIMTextSymbol sym = SymbolFactory.Instance.ConstructTextSymbol(ColorFactory.Instance.BlackRGB, 24, "Comic Sans MS", "Regular");
// 在视图中创建曲线文本
GraphicElement bezTxtElm = ElementFactory.Instance.CreateTextGraphicElement(layout, TextType.SplinedText, bezPl, sym, "Curved Text", "New Splinned Text");

相关文章:

  • (三十五)大数据实战——Superset可视化平台搭建
  • LVS/DR配置
  • 【黑客渗透】-- 远程木马控制
  • 【Effective Objective - C 2.0】——读书笔记(五)
  • Linux:docker在线仓库(docker hub 阿里云)基础操作
  • 微信小程序新手入门教程四:样式设计
  • 多进程服务器和多线程服务器
  • Android studio:错误: 需要常量表达式
  • 算法刷题:长度最小的子数组
  • IOS破解软件安装教程
  • 今天面了一个来字节要求月薪23K,明显感觉他背了很多面试题...
  • Kotlin基本语法3集合
  • HTML-多媒体嵌入-MDN文档学习笔记
  • 订餐|网上订餐系统|基于springboot的网上订餐系统设计与实现(源码+数据库+文档)
  • python-自动化篇-办公-Excel-Openpyxl库
  • docker 2:安装
  • 深度学习基础之《TensorFlow框架(4)—Operation》
  • ZigBee学习——BDB
  • 使用word2vec+tensorflow自然语言处理NLP
  • 如何用 npm 运行本地 js 文件
  • 荣盛发展股东所持1.17亿股将被司法拍卖,起拍价约1.788亿元
  • 五一去哪儿| 追着花期去旅行,“赏花经济”绽放文旅新活力
  • 光明网评论员:手机“二次放号”,需要重新确认“你是你”
  • 江苏银行一季度净赚近98亿增逾8%,不良贷款率微降
  • 马上评丨发钱奖励结婚,支持婚育就该系统性发力
  • 万能险新规落地:保险期限不得低于五年,明确万能险销售“负面清单”