InSightAnalysis
通视空间分析对象,用于对三维场景实现通视分析。
在视点(from)与目标点(to)之间连线,判断连线是否被模型遮挡:可见段用 visibleColor 着色,不可见段用 invisibleColor 着色,并可返回与通视线相交的对象(基于 RayCaster 射线检测,2026 源码核对补充)。
构造函数
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 配置参数,可选的配置项如下:
| 配置名 | 类型 | 描述 | 默认值 |
|---|---|---|---|
| lines | Object[] | 通视线数组,每项为 { from, to }(坐标数组或 Coordinate,2026 源码核对补充) | [] |
| visibleColor | Number[] | 四位归一化数组,可见段颜色(绿) | [0, 1, 0, 1] |
| invisibleColor | Number[] | 四位归一化数组,不可见段颜色(红) | [1, 0, 0, 1] |
| excludeLayers | String[] | 忽略的图层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)