Class: PointSymbol3D

PointSymbol3D

new PointSymbol3D(options)

base/symbol/PointSymbol3D.js, line 6

三维点符号,用于在三维场景视图中渲染点要素(Point),不支持二维视图。
三维点符号必须包含以下符号图层中的一个或多个,才能在三维场景中显示要素:
三维图标符号图层三维体对象符号图层三维注记符号图层
示例如下:
[1、创建一个三维点符号对象]

Name Type Description
options Object

初始化参数

Name Type Description
symbolLayers Collection 可选

符号图层集合,用于定义点要素的可视化样式。 可包含一个或多个符号图层,不同图层类型决定最终渲染效果(如图标、三维体对象、注记等)。

callout LineCallout3D 可选

引导线样式。当符号因垂直偏移脱离原始位置时, 引导线会从符号连接到要素的真实地理位置,帮助用户识别符号与地物的对应关系。

verticalOffset Symbol3DVerticalOffset 可选

符号垂直偏移配置, 将符号沿世界坐标系的竖直轴(Z 轴)方向抬升,常用于避免符号与地形或其他要素重叠。

Example

创建一个三维点符号对象

// ES5 引入方式
const { Color, Feature } = zondy
const { ObjectSymbol3DLayer, IconResource, ColorMaterial, PointSymbol3D } = zondy.symbol
const { Point } = zondy.geometry
const { GraphicsLayer } = zondy.layer
// ES6 引入方式
import { ObjectSymbol3DLayer, IconResource, ColorMaterial, Color, PointSymbol3D, Point, Feature, GraphicsLayer } from "@mapgis/webclient-common"

// 创建三维体对象符号图层(以球体为例)
const objectSymbol3DLayer = new ObjectSymbol3DLayer({
  // 使用内置几何体资源
  resource: new IconResource({
    // sphere:球体;cylinder:圆柱体;cone:圆锥体;cube:立方体;diamond:棱形体;tetrahedron:四面体
    primitive: 'sphere'
  }),
  // 填充颜色
  material: new ColorMaterial({
    color: new Color(255, 1, 1, 1)
  }),
  // 球体高度,单位为米
  height: 1000,
  // 球体宽度,单位为米
  width: 1000,
  // 球体深度,单位为米
  depth: 1000
})

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

// 构造点几何对象(坐标格式为 [经度, 纬度, 高程])
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

calloutLineCallout3D

引导线样式。当符号因垂直偏移脱离原始位置时, 引导线会从符号连接到要素的真实地理位置,帮助用户识别符号与地物的对应关系。

symbolLayersCollection

符号图层集合,用于可视化要素对象

typeString

符号类型,固定值为 point-3d,用于标识当前符号为三维点符号。

verticalOffsetSymbol3DVerticalOffset

符号垂直偏移配置,将符号沿世界坐标系的竖直轴(Z 轴)方向抬升, 常用于避免符号与地形或其他要素重叠。

Methods

clone(){PointSymbol3D}

base/symbol/PointSymbol3D.js, line 135

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

Returns:
Type Description
PointSymbol3D 克隆后的新符号实例

toJSON(){Object}

base/symbol/PointSymbol3D.js, line 122

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

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

PointSymbol3D.fromJSON(json){PointSymbol3D}

base/symbol/PointSymbol3D.js, line 113

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

Name Type Default Description
json Object {} 可选

符号属性的 JSON 对象

Returns:
Type Description
PointSymbol3D 新的 PointSymbol3D 实例