Class: TextSymbol3DLayer

TextSymbol3DLayer

new TextSymbol3DLayer(options)

base/symbol/symbol3DLayer/TextSymbol3DLayer.js, line 11

三维注记符号图层,用于在三维场景中以文字形式渲染标注,仅支持三维场景视图,不支持二维地图视图。
通常与 PointSymbol3DLabelSymbol3D 配合使用,作为其 symbolLayers 数组中的元素。
支持自定义字体样式、文字颜色(通过材质设置)、光晕、背景色、对齐方式等属性。
示例如下:
[1、创建一个三维注记符号图层对象]

Name Type Description
options Object

构造参数

Name Type Default Description
text String 可选

文字内容

font Font new Font() 可选

字体样式,包含字体族、字体风格、字体粗细等属性

size Number 9 可选

文字大小(单位:磅)。注意:在 font 中设置文字大小无效,必须通过此属性设置

material ColorMaterial new ColorMaterial() 可选

文字材质,目前支持 ColorMaterial(纯色材质):
  通过设置纯色材质来控制文字颜色

background Color new Color() 可选

文字背景颜色,RGBA 格式

halo TextHalo new TextHalo() 可选

文字光晕样式,用于在文字周围绘制发光轮廓,提升文字在复杂背景下的可读性

horizontalAlignment HorizontalAlignment HorizontalAlignment.center 可选

文字水平对齐方式。
可选值:'left'(左对齐)| 'right'(右对齐)| 'center'(居中)| 'justify'(两端对齐)

verticalAlignment VerticalAlignment VerticalAlignment.baseline 可选

文字垂直对齐方式。
可选值:'top'(顶部对齐)| 'middle'(居中对齐)| 'bottom'(底部对齐)| 'baseline'(基线对齐)

lineHeight Number 1 可选

文字行高,相对于字体大小的倍数,默认值 1 表示单倍行距

Example

创建一个三维注记符号图层对象

// ES5 引入方式
const { Color, Feature } = zondy
const { TextSymbol3DLayer, ColorMaterial, PointSymbol3D } = zondy.symbol
const { Point } = zondy.geometry
const { GraphicsLayer } = zondy.layer
// ES6 引入方式
import { TextSymbol3DLayer, ColorMaterial, Color, PointSymbol3D, Point, Feature, GraphicsLayer } from "@mapgis/webclient-common"

// 创建三维注记符号图层(红色文字,大小 40)
const textSymbol3DLayer = new TextSymbol3DLayer({
  // 文字内容
  text: '你的文字内容',
  // 文字大小(磅)
  size: 40,
  // 文字颜色(红色)
  material: new ColorMaterial({
    color: new Color(255, 1, 1, 1)
  })
})

// 创建三维点符号,将注记图层加入 symbolLayers
const symbol = new PointSymbol3D({
  symbolLayers: [textSymbol3DLayer]
})

// 构造点几何对象(经度、纬度、高程)
const point = new Point({
  coordinates: [114, 30, 600],
})

// 构建要素对象
const feature = new Feature({
  geometry: point,
  symbol: symbol
})

// 创建图形图层并添加至地图
const layer = new GraphicsLayer({
  graphics: [],
})
map.add(layer)

// 将要素添加至图层
layer.add(feature)

Extends

Members

backgroundColor

文字背景颜色,RGBA 格式

Default Value:
new Color()

fontFont

字体样式,包含字体族(family)、字体风格(style)、字体粗细(weight)等属性

Default Value:
new Font()

haloTextHalo

文字光晕样式,用于在文字周围绘制发光轮廓,提升文字在复杂背景下的可读性

Default Value:
new TextHalo()

horizontalAlignmentHorizontalAlignment

文字水平对齐方式。
可选值:'left'(左对齐)| 'right'(右对齐)| 'center'(居中)| 'justify'(两端对齐)

Default Value:
HorizontalAlignment.center

idString

符号图层唯一标识

lineHeightNumber

文字行高,相对于字体大小的倍数,默认值 1 表示单倍行距

Default Value:
1

materialColorMaterial

文字材质,目前支持 ColorMaterial(纯色材质),通过设置纯色材质来控制文字颜色

Default Value:
new ColorMaterial()

sizeNumber

文字大小(单位:磅)。注意:在 font 中设置文字大小无效,必须通过此属性设置

Default Value:
9

textString

文字内容

transformMatrixArray.<Number>

图层的变换矩阵,格式为16个元素的一维数组,表示一个4x4的齐次坐标变换矩阵

三维符号图层类型,固定为 Symbol3DLayerType.text

verticalAlignmentVerticalAlignment

文字垂直对齐方式。
可选值:'top'(顶部对齐)| 'middle'(居中对齐)| 'bottom'(底部对齐)| 'baseline'(基线对齐)

Default Value:
VerticalAlignment.baseline

Methods

clone(){TextSymbol3DLayer}

base/symbol/symbol3DLayer/TextSymbol3DLayer.js, line 182

克隆当前图层,返回一个具有相同属性的新实例(深拷贝)。 新实例与原实例互不影响。

Returns:
Type Description
TextSymbol3DLayer 克隆后的新 TextSymbol3DLayer 实例

toJSON(){Object}

base/symbol/symbol3DLayer/TextSymbol3DLayer.js, line 163

将当前实例序列化为普通 JSON 对象,可用于持久化存储或网络传输。 返回的对象可通过 TextSymbol3DLayer.fromJSON 反序列化还原。

Returns:
Type Description
Object 包含图层所有属性的 JSON 对象

TextSymbol3DLayer.fromJSON(json){TextSymbol3DLayer}

base/symbol/symbol3DLayer/TextSymbol3DLayer.js, line 154

通过 JSON 数据构造并返回一个新的 TextSymbol3DLayer 实例(静态工厂方法)。 接收的 JSON 结构应与 TextSymbol3DLayer#toJSON 的返回值一致。

Name Type Description
json Object

符号图层属性的 JSON 对象

Returns:
Type Description
TextSymbol3DLayer 新的 TextSymbol3DLayer 实例