0
点赞
收藏
分享

微信扫一扫

Cesium 问题——加载 gltf 格式的模型之后太小,如何让相机视角拉近

Yaphets_巍 2024-02-19 阅读 11

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");
举报

相关推荐

0 条评论