Skip to content

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
cutLineColorNumber[]切面填充色(源码默认值 DEFAULT_WATER_COLOR,2026 核对)[0.8451, 0.2588, 0.4863]
textureUrlString切面纹理 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)