Skip to content

InSightAnalysis

通视空间分析对象,用于对三维场景实现通视分析。

在视点(from)与目标点(to)之间连线,判断连线是否被模型遮挡:可见段用 visibleColor 着色,不可见段用 invisibleColor 着色,并可返回与通视线相交的对象(基于 RayCaster 射线检测,2026 源码核对补充)。

构造函数

js
import { InSightAnalysis } from '@maptalks/gl-layers';

const insightAnalysis = new InSightAnalysis({
  lines: [
    {
      from: [center.x + 0.003, center.y + 0.002, 50],
      to: [center.x - 0.001, center.y - 0.0005, 100]
    }
  ],
  visibleColor: [0, 1, 0, 1],
  invisibleColor: [1, 0, 0, 1]
});

insightAnalysis.addTo(groupGLLayer);
详细信息
参数:
  • options* Object 配置参数,可选的配置项如下:
配置名类型描述默认值
linesObject[]通视线数组,每项为 { from, to }(坐标数组或 Coordinate,2026 源码核对补充)[]
visibleColorNumber[]四位归一化数组,可见段颜色(绿)[0, 1, 0, 1]
invisibleColorNumber[]四位归一化数组,不可见段颜色(红)[1, 0, 0, 1]
excludeLayersString[]忽略的图层id列表(不参与遮挡判断)null

成员方法

addLine(inSightLine)

添加一条通视线。

参数:

  • inSightLine Object 通视线,结构为 { from, to }

返回:

  • void
removeLine(inSightLine)

移除一条通视线。

参数:

  • inSightLine Object 要移除的通视线

返回:

  • void
getLines()

获取所有通视线。

返回:

  • Object[]
setLines(lines)

设置通视线数组。

参数:

  • lines Object[] 通视线数组,每项为 { from, to }

返回:

  • void
clearLines()

清空所有通视线。

返回:

  • void
getIntersetction()

获取所有与通视线相交的对象,结构为 [{ inSightLine, intersects: [{ data: maptalks 对象(如 gltfmarker、polygon), coordinates: [{ coordinate, indices }] }] }]

注:方法名为源码中的拼写 getIntersetction(2026 源码核对)。

返回:

  • Object[]

继承自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)