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

    类 RenderingCollision

    全局碰撞检测

    const icon = engine.add(new mapvthree.Icon({
    icon: 'icon.png',
    width: 40,
    height: 40,
    }));
    icon.dataSource = dataSource;
    // 为icon添加碰撞检测
    engine.rendering.collision.add(icon, {margin: [10, 10]} 'poi');
    索引

    方法

    • 添加一个对象到碰撞检测系统

      参数

      • object: GeoObject

        需要进行碰撞检测的对象

      • 可选options: { margin?: number | number[] } = {}

        碰撞检测选项

        • 可选margin?: number | number[]

          碰撞边距

      • 可选group: string = '_default'

        碰撞检测分组

      返回 void

      // 添加一个标签到指定分组,并设置碰撞边距
      engine.rendering.collision.add(labelObject, {
      margin: [2, 2]
      }, 'poi-labels');
    • 从碰撞检测系统中移除一个对象

      参数

      • object: GeoObject

        要移除的对象

      • 可选group: string = '_default'

        对象所在的分组

      返回 void

      // 从默认分组移除对象
      engine.rendering.collision.remove(labelObject);

      // 从指定分组移除对象
      engine.rendering.collision.remove(labelObject, 'poi-labels');

    访问器

    • get margin(): number[]

      获取碰撞方块外边距

      返回 number[]

      碰撞方块外边距

    • set margin(value: number | number[]): void

      碰撞方块的外边距,主要影响碰撞体积

      参数

      • value: number | number[]

        x轴与y轴的边距

      返回 void

    • set maxRenderDepth(value: number): void

      最大渲染深度, 超过此深度的元素将不参与碰撞检测, 范围[0, 1], 默认1, 即不限制

      参数

      • value: number

        最大渲染深度

      返回 void

      1
      
    • get needsUpdate(): boolean

      获取是否需要更新碰撞检测

      返回 boolean

      是否需要更新碰撞检测

    • set needsUpdate(value: boolean): void

      设置是否需要更新碰撞检测

      参数

      • value: boolean

        是否需要更新碰撞检测

      返回 void

    • get restrictCount(): number

      获取参与碰撞检测计算的最大数据量

      返回 number

      参与碰撞检测计算的最大数据量

    • set restrictCount(value: number): void

      参与碰撞检测计算的最大数据量,用于性能优化

      参数

      • value: number

      返回 void

      10000
      
      // 限制参与碰撞检测的数据量
      engine.rendering.collision.restrictCount = 5000;