new FillSymbol3DLayer(options)
三维区符号图层,用于在三维场景中以平面填充方式渲染面状要素(多边形),不支持二维视图。
可通过 ColorMaterial 设置填充颜色,通过 FillSymbol3DOutline 设置外边线样式,通过 StylePattern3D 设置区间隔填充样式。
通常配合 PolygonSymbol3D 使用,作为其 symbolLayers 数组中的元素。
示例如下:
[1、创建三维区符号图层]
| Name | Type | Description | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object |
构造参数
|
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
符号图层唯一标识
materialColorMaterial TextMaterial
填充材质,控制面要素的填充颜色。目前支持 ColorMaterial 纯色材质和 TextMaterial 文字材质
outlineFillSymbol3DOutline
外边线样式,控制面要素边界线的颜色、宽度和线型
patternStylePattern3D
区间隔填充样式,控制面要素内部的线型填充图案
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 jsonObject 符号图层属性的 JSON 对象
Returns:
Type Description FillSymbol3DLayer 新的 FillSymbol3DLayer 实例