new TextSymbol3DLayer(options)
三维注记符号图层,用于在三维场景中以文字形式渲染标注,仅支持三维场景视图,不支持二维地图视图。
通常与 PointSymbol3D 或 LabelSymbol3D 配合使用,作为其 symbolLayers 数组中的元素。
支持自定义字体样式、文字颜色(通过材质设置)、光晕、背景色、对齐方式等属性。
示例如下:
[1、创建一个三维注记符号图层对象]
| Name | Type | Description | ||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object |
构造参数
|
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 jsonObject 符号图层属性的 JSON 对象
Returns:
Type Description TextSymbol3DLayer 新的 TextSymbol3DLayer 实例