Class: FillSymbol3DLayer

FillSymbol3DLayer

new FillSymbol3DLayer(options)

base/symbol/symbol3DLayer/FillSymbol3DLayer.js, line 7

三维区符号图层,用于在三维场景中以平面填充方式渲染面状要素(多边形),不支持二维视图。
可通过 ColorMaterial 设置填充颜色,通过 FillSymbol3DOutline 设置外边线样式,通过 StylePattern3D 设置区间隔填充样式。
通常配合 PolygonSymbol3D 使用,作为其 symbolLayers 数组中的元素。
示例如下:
[1、创建三维区符号图层]

Name Type Description
options Object

构造参数

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

填充材质,控制面要素的填充颜色。目前支持的材质类型:
ColorMaterial:纯色材质,通过设置颜色来改变平面区的填充色
TextMaterial: 文字材质,通过设置文字来改变平面区的填充内容

castShadows Boolean true 可选

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

outline FillSymbol3DOutline new FillSymbol3DOutline() 可选

外边线样式,控制面要素边界线的颜色、宽度和线型

pattern StylePattern3D new StylePattern3D() 可选

区间隔填充样式,控制面要素内部的线型填充图案

Example

创建三维区符号图层

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

// 创建三维区符号图层,设置填充色(红色)和外边线(黄色,宽度4)
const fillSymbol3DLayer = new FillSymbol3DLayer({
  // 填充颜色:RGBA格式,值域 0~255(alpha为0~1)
  material: new ColorMaterial({
    color: new Color(255, 1, 1, 1)
  }),
  // 外边线样式,可选
  outline: new FillSymbol3DOutline({
    color: new Color(255, 255, 0, 1),
    size: 4
  })
})

// 创建三维面符号,将符号图层加入 symbolLayers
const symbol = new PolygonSymbol3D({
  symbolLayers: [fillSymbol3DLayer]
})

// 构造面几何对象(坐标格式为 [经度, 纬度, 高程],首尾坐标需相同以闭合环)
const polygon = new Polygon({
  coordinates: [
    [
      [112.3, 29, 0],
      [112.9, 29, 0],
      [113.5, 29, 0],
      [113.5, 28.4, 0],
      [112.9, 28.4, 0],
      [112.3, 28.4, 0],
      [112.3, 29, 0],
    ],
  ],
})

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

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

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

Extends

Members

castShadowsBoolean

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

Default Value:
true

idString

符号图层唯一标识

填充材质,控制面要素的填充颜色。目前支持 ColorMaterial 纯色材质和 TextMaterial 文字材质

外边线样式,控制面要素边界线的颜色、宽度和线型

区间隔填充样式,控制面要素内部的线型填充图案

transformMatrixArray.<Number>

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

三维符号图层类型,固定为 fill,标识当前图层为平面填充图层

Methods

clone(){FillSymbol3DLayer}

base/symbol/symbol3DLayer/FillSymbol3DLayer.js, line 147

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

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

toJSON(){Object}

base/symbol/symbol3DLayer/FillSymbol3DLayer.js, line 130

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

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

FillSymbol3DLayer.fromJSON(json){FillSymbol3DLayer}

base/symbol/symbol3DLayer/FillSymbol3DLayer.js, line 121

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

Name Type Description
json Object

符号图层属性的 JSON 对象

Returns:
Type Description
FillSymbol3DLayer 新的 FillSymbol3DLayer 实例