new Arrow3DSymbol3DLayer(options)
base/symbol/symbol3DLayer/Arrow3DSymbol3DLayer.js, line 8
三维箭头符号图层,用于在三维场景中渲染三维箭头形状,仅支持三维场景视图,不支持二维地图视图。
通常与 PointSymbol3D 配合使用,用于表达方向性信息(如流向、风向、运动轨迹等)。
示例如下:
[1、创建三维箭头符号图层]
| Name | Type | Description | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object |
构造参数
|
Example
// ES5引入方式
const { Color, Feature } = zondy
const { Arrow3DSymbol3DLayer, ColorMaterial, PointSymbol3D } = zondy.symbol
const { GraphicsLayer } = zondy.layer
const { Point } = zondy.geometry
// ES6引入方式
import { GraphicsLayer, Arrow3DSymbol3DLayer, ColorMaterial, Color, Point, Feature, PointSymbol3D } from "@mapgis/webclient-common"
// 创建三维箭头符号图层(红色,沿 x 轴水平方向)
const arrow3DSymbol3DLayer = new Arrow3DSymbol3DLayer({
// 填充颜色材质
material: new ColorMaterial({
color: new Color(255, 1, 1, 1)
}),
// 箭头头部长度(像素)
headLength: 20,
// 箭头头部底面半径(像素)
headRadius: 9,
// 箭头杆部长度(像素)
shaftLength: 40,
// 箭头杆部横截面半径(像素)
shaftRadius: 3,
// 箭头的朝向
direction: 'east'
})
// 创建三维点符号
const symbol = new PointSymbol3D({
symbolLayers: [arrow3DSymbol3DLayer]
})
// 构建几何点坐标(经度、纬度、高度)
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
-
directionString
-
箭头的朝向,可选值'east'(默认,沿 x 轴正方向)、'north'(沿 y 轴正方向)、'up'(沿 z 轴正方向)
- Default Value: 'east'
headLengthNumber
箭头头部(锥体)的长度,单位:像素
- Default Value: 20
headRadiusNumber
箭头头部(锥体)的底面半径,单位:像素
- Default Value: 9
idString
符号图层唯一标识
materialColorMaterial
箭头的填充材质,目前支持 ColorMaterial(纯色材质)
shaftLengthNumber
箭头杆部(圆柱体)的长度,单位:像素
- Default Value: 40
shaftRadiusNumber
箭头杆部(圆柱体)的横截面半径,单位:像素
- Default Value: 3
transformMatrixArray.<Number>
图层的变换矩阵,格式为16个元素的一维数组,表示一个4x4的齐次坐标变换矩阵
三维符号图层类型,固定为 Symbol3DLayerType.arrow
Methods
-
clone(){Arrow3DSymbol3DLayer}
base/symbol/symbol3DLayer/Arrow3DSymbol3DLayer.js, line 157 -
克隆并返回一个新的 Arrow3DSymbol3DLayer 对象
Returns:
Type Description Arrow3DSymbol3DLayer 新的 Arrow3DSymbol3DLayer 对象 -
toJSON(){Object}
base/symbol/symbol3DLayer/Arrow3DSymbol3DLayer.js, line 140 -
导出为 JSON 对象
Returns:
Type Description Object 导出的 JSON 对象 -
Arrow3DSymbol3DLayer.fromJSON(json){Arrow3DSymbol3DLayer}
base/symbol/symbol3DLayer/Arrow3DSymbol3DLayer.js, line 132 -
通过 JSON 数据构造一个 Arrow3DSymbol3DLayer 对象
Name Type Description jsonObject JSON 数据
Returns:
Type Description Arrow3DSymbol3DLayer 新的 Arrow3DSymbol3DLayer 对象