Class: Arrow3DSymbol3DLayer

Arrow3DSymbol3DLayer

new Arrow3DSymbol3DLayer(options)

base/symbol/symbol3DLayer/Arrow3DSymbol3DLayer.js, line 8

三维箭头符号图层,用于在三维场景中渲染三维箭头形状,仅支持三维场景视图,不支持二维地图视图。
通常与 PointSymbol3D 配合使用,用于表达方向性信息(如流向、风向、运动轨迹等)。
示例如下:
[1、创建三维箭头符号图层]

Name Type Description
options Object

构造参数

Name Type Default Description
material ColorMaterial new ColorMaterial() 可选

箭头的填充材质。目前支持 ColorMaterial(纯色材质),通过设置颜色来控制箭头的外观颜色

headLength Number 20 可选

箭头头部(锥体)的长度,单位:像素

headRadius Number 9 可选

箭头头部(锥体)的底面半径,单位:像素

shaftLength Number 40 可选

箭头杆部(圆柱体)的长度,单位:像素

shaftRadius Number 3 可选

箭头杆部(圆柱体)的横截面半径,单位:像素

direction String 'east' 可选

箭头的朝向,可选值'east'、(默认,沿 x 轴正方向)'north'(沿 y 轴正方向)、'up'(沿 z 轴正方向)

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
json Object

JSON 数据

Returns:
Type Description
Arrow3DSymbol3DLayer 新的 Arrow3DSymbol3DLayer 对象