Class: PathSymbol3DLayer

PathSymbol3DLayer

new PathSymbol3DLayer(options)

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

三维管道符号图层,用于在三维场景视图中以具有横截面的三维管体形式渲染线要素(LineString),仅支持三维场景视图,不支持二维地图视图。
渲染效果为沿线路径拉伸的三维实体管道,区别于 三维线符号图层(屏幕对齐的扁平线条)。
通常与 LineSymbol3D 配合使用,作为其 symbolLayers 数组中的元素。
示例如下:
[1、创建三维管道符号图层]

Name Type Description
options Object

构造参数

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

管道的材质,控制管道的颜色及透明度。
目前支持的材质类型:
ColorMaterial:纯色材质,通过设置 color 属性来改变管道的颜色。

profile ProfileType ProfileType.circle 可选

管道横截面类型。
可选值(ProfileType):
'circle':圆形横截面,管道呈圆柱形(默认);
'quad':矩形横截面,管道呈长方体形;
'wall':墙体横截面,管道呈竖直平面片状,适用于模拟墙、栅栏等扁平立面结构。

width Number 可选

管道的宽度,单位:米。
若未设置,则宽度与 height 保持一致;若 widthheight 均未设置,则管道不显示。
注意:当 profile'wall' 时,此参数不生效,管道宽度由渲染引擎自动处理。

height Number 可选

管道的高度,单位:米。
若未设置,则高度与 width 保持一致;若 heightwidth 均未设置,则管道不显示。

join LineJoinType LineJoinType.miter 可选

管道拐角处的连接样式。
可选值(LineJoinType):
'miter':尖角连接,拐角处以锐利的尖角衔接(默认);
'round':圆角连接,拐角处以圆弧过渡;
'bevel':斜切连接,拐角处以斜面切割,避免尖角过长。

cap LineCapType LineCapType.butt 可选

管道首尾端点的封口样式。
可选值(LineCapType):
'butt':平头端点,管道在端点处直接截断,不超出端点坐标(默认);
'round':圆头端点,管道端点处以半球形延伸;
'square':方头端点,管道端点处以矩形延伸,延伸长度为管道尺寸的一半。

castShadows Boolean true 可选

是否投射阴影,为 true 时该图层参与场景阴影计算。

anchor AnchorType AnchorType.center 可选

锚点对齐方式,即管道几何体相对于线要素坐标的对齐位置。
可选值:'center'(默认)| 'top' | 'bottom' | 'origin' | 'relative'

Example

创建三维管道符号图层

// ES5 引入方式
const { ProfileType, Feature } = zondy.enum
const { PathSymbol3DLayer, ColorMaterial, LineSymbol3D } = zondy.symbol
const { LineString } = zondy.geometry
const { GraphicsLayer } = zondy.layer
// ES6 引入方式
import { ProfileType, PathSymbol3DLayer, ColorMaterial, LineSymbol3D, LineString, Feature, GraphicsLayer } from "@mapgis/webclient-common"

// 创建三维管道符号图层(圆形横截面,宽高均为 40 米)
const pathSymbol3DLayer = new PathSymbol3DLayer({
  // 管道宽度(米)
  width: 40,
  // 管道高度(米)
  height: 40,
  // 管道材质(默认白色)
  material: new ColorMaterial(),
  // 横截面类型:圆形
  profile: ProfileType.circle
})

// 创建三维线符号,并指定符号图层
const symbol = new LineSymbol3D({
  symbolLayers: [pathSymbol3DLayer]
})

// 构造线几何对象(坐标格式为 [经度, 纬度, 高程])
const lineString = new LineString({
  coordinates: [
    [113, 29, 0],
    [114, 30, 0],
    [115, 30, 0],
  ],
})

// 构建要素对象,将几何与符号绑定
const feature = new Feature({
  geometry: lineString,
  symbol: symbol
})

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

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

Extends

Members

anchorAnchorType

锚点对齐方式,即管道几何体相对于线要素坐标的对齐位置。
可选值:'center'(默认)| 'top' | 'bottom' | 'origin' | 'relative'

Default Value:
AnchorType.center

管道首尾端点的封口样式。
可选值(LineCapType):'butt'(平头,默认)| 'round'(圆头)| 'square'(方头)

Default Value:
LineCapType.butt

castShadowsBoolean

是否投射阴影,为 true 时该图层参与场景阴影计算。

Default Value:
true

heightNumber

管道的高度,单位:米。
若未设置,则高度与 width 保持一致;若 heightwidth 均未设置,则管道不显示。

Default Value:
undefined

idString

符号图层唯一标识

管道拐角处的连接样式。
可选值(LineJoinType):'miter'(尖角,默认)| 'round'(圆角)| 'bevel'(斜切)

Default Value:
LineJoinType.miter

materialColorMaterial

管道的材质,控制管道的颜色及透明度。目前仅支持 ColorMaterial 纯色材质。

profileProfileType

管道横截面类型。
可选值(ProfileType):'circle'(圆形,默认)| 'quad'(矩形)| 'wall'(墙体)

Default Value:
ProfileType.circle

transformMatrixArray.<Number>

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

三维符号图层类型,固定值为 path,用于标识当前图层为三维管道符号图层。

widthNumber

管道的宽度,单位:米。
若未设置,则宽度与 height 保持一致;若 widthheight 均未设置,则管道不显示。
注意:当 profile'wall' 时,此参数不生效。

Default Value:
undefined

Methods

clone(){PathSymbol3DLayer}

base/symbol/symbol3DLayer/PathSymbol3DLayer.js, line 196

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

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

toJSON(){Object}

base/symbol/symbol3DLayer/PathSymbol3DLayer.js, line 178

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

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

PathSymbol3DLayer.fromJSON(json){PathSymbol3DLayer}

base/symbol/symbol3DLayer/PathSymbol3DLayer.js, line 169

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

Name Type Description
json Object

符号图层属性的 JSON 对象

Returns:
Type Description
PathSymbol3DLayer 新的 PathSymbol3DLayer 实例