CrossCutAnalysis
剖面(横切)空间分析对象,用于对三维场景实现剖面分析。
沿一条 cutLine 对模型做横切并显示切面(断面),并可沿切线等距取点查询各点高程(getAltitudes)。
构造函数
js
import { CrossCutAnalysis } from '@maptalks/gl-layers';
const crosscutAnalysis = new CrossCutAnalysis({
cutLine: [
[108.95943151743995, 34.220773839751956],
[108.95942615302192, 34.21846280188899]
],
cutLineColor: [0.0, 1.0, 0.0, 1.0]
});
crosscutAnalysis.addTo(groupGLLayer);详细信息
参数:
- options* Object 配置参数,可选的配置项如下:
| 配置名 | 类型 | 描述 | 默认值 |
|---|---|---|---|
| cutLine* | Array<Array> | 切割线坐标数组,构成一条折线 | null |
| cutLineColor | Number[] | 切面填充色(源码默认值 DEFAULT_WATER_COLOR,2026 核对) | [0.8451, 0.2588, 0.4863] |
| textureUrl | String | 切面纹理 url(README 提及) | null |
成员方法
getAltitudes(count)
沿切割线等距采样 count 个点,返回每个采样点的坐标与沿线距离,可用来绘制剖面线或量测断面高程(2026 源码核对补充)。
参数:
- count Number 采样点数
返回:
- Object[] 数组元素为
{ coordinate: Coordinate(x, y, z), distance },其中 coordinate.z 为采样点的高程
继承自Analysis的方法
addTo(groupGLLayer)
添加到GroupGLLayer上。
空间分析对象只支持添加到GroupGLLayer上,无法添加到其他WebGL图层。
参数:
- groupGLLayer GroupGLLayer GroupGLLayer图层
返回:
- this
remove()
从图层上移除空间分析对象。
返回:
- void
update(name, value)
更新options数据。
参数:
- name String 设置名称
- value any 设置的值
返回:
- void
getAnalysisType()
获取Analysis的类型。
返回:
- String
getDefines()
内部调用方法。
返回Analysis绘制时在shader中添加的defines。
返回:
- Object
renderAnalysis(meshes)
内部调用方法。
绘制空间分析场景(各分析子类实现),返回渲染所需的 uniform 变量。
参数:
- meshes Mesh[] 场景网格
返回:
- Object
enable()
启用分析。
返回:
- void
disable()
禁用分析。
返回:
- void
isEnable()
分析是否已启用。
返回:
- Boolean
getExcludeLayers()
获取分析时排除的图层id列表(分析时忽略这些图层)。
返回:
- String[]
setExcludeLayers(layerIds)
设置分析时排除的图层id列表。
参数:
- layerIds String[] 图层id列表
返回:
- void
exportAnalysisMap(meshes)
导出分析结果图(RGBA像素数据),分析未启用时返回 null。
参数:
- meshes Mesh[] 场景网格
返回:
- Uint8Array
本文档已与 @maptalks/gl-layers 2026 源码核对(api-notes-others.md / api-notes-vt-gl.md)