JSAPI Three API Reference
    正在准备搜索索引...

    类 Tiles3DVolumeAnalysis

    3DTiles 填挖方分析。给定多边形区域和目标地表高度(surfaceHeight), 计算该区域内 3DTiles 模型相对该高度需要挖掉/填补的面积和体积, 同时对该区域做开挖可视化。

    • cutArea / cutVolume:高于 surfaceHeight 的部分(要挖)
    • fillArea / fillVolume:低于 surfaceHeight 的部分(要填)

    待分析的 3DTiles 必须设置 enableClip = true。build() 异步执行,必须 await 后再读结果。

    const analysis = engine.add(new mapvthree.Tiles3DVolumeAnalysis({
    area: [[lng, lat], ...],
    surfaceHeight: 500,
    interpolateNum: 30,
    }));
    await analysis.build();
    console.log(analysis.cutVolume, analysis.fillVolume);
    analysis.enabled = true;

    层级

    • EngineObject3D
      • Tiles3DVolumeAnalysis
    索引

    构造函数

    • 创建 Tiles3DVolumeAnalysis 实例。

      参数

      • 可选options: {
            area?: [number, number][];
            bottomImg?: string;
            enabled?: boolean;
            interpolateNum?: number;
            showBottom?: boolean;
            showWall?: boolean;
            surfaceHeight?: number;
            wallImg?: string;
        } = {}
        • 可选area?: [number, number][]

          分析区域多边形,经纬度数组

        • 可选bottomImg?: string

          坑底贴图 URL,默认使用内置开挖纹理

        • 可选enabled?: boolean

          是否立即启用可视化

        • 可选interpolateNum?: number

          采样网格密度 N×N,越大越精确,但耗时增加(最小 2)

        • 可选showBottom?: boolean

          是否显示坑底

        • 可选showWall?: boolean

          是否显示侧壁

        • 可选surfaceHeight?: number

          目标平整高度(米),高于此值要挖、低于此值要填

        • 可选wallImg?: string

          侧壁贴图 URL,默认使用内置开挖纹理

      返回 Tiles3DVolumeAnalysis

    方法

    • 触发计算并重建可视化,是读取 cutArea / cutVolume 等结果前的必要步骤。 异步执行不阻塞主线程,必须 await 完成后再读结果。 修改 area / surfaceHeight / interpolateNum 后需重新调用。 调用时若目标区域 3DTiles 尚未加载到位,结果将不准确,可参考 missRatio 判断。

      返回 Promise<boolean>

      成功返回 true;参数不合法或 tileset 未就绪返回 false。

    • 清理结果和缓存。

      返回 void

    • 仅修改 surfaceHeight 时的轻量重算,比 build() 快,不需要重新采样地表高度。 需要在 build() 至少成功一次后才能使用。

      返回 boolean | Promise<boolean>

      • true:可立即使用缓存同步完成
        • Promise<boolean>:当前正在 build(),会等 build() 完成后再算
        • false:缓存不可用且无进行中的 build(),调用方应改用 build()
    • 返回最近一次 build 的 promise。 resolve 值:true 成功 / false 失败 / null 从未 build。

      返回 Promise<boolean>

    访问器

    • get cutArea(): number

      挖方面积(平方米)

      返回 number

    • get cutVolume(): number

      挖方体积(立方米)

      返回 number

    • set enabled(value: boolean): void

      挖坑可视化的开关,不影响 cutArea / cutVolume 等计算结果。 首次设为 true 且未 build() 过时会自动触发一次 build(),需 await whenBuilt() 后再读取结果。

      参数

      • value: boolean

      返回 void

    • get fillArea(): number

      填方面积(平方米)

      返回 number

    • get fillVolume(): number

      填方体积(立方米)

      返回 number

    • get missRatio(): number

      计算结果的不可信比例(0~1)。值越大说明目标区域内有越多位置无法获取地表高度, cut/fill 数值越不可信。建议大于 0.1 时提示用户或在 3DTiles 加载更精细后重新 build()。

      返回 number

      0~1