圆形区域

向三维场景视图中添加圆形区域,用户可以自定义区域颜色、高度、旋转角度等属性。

round.png

方法

批量/单个添加区域

  • 向三维场景中批量添加区域
  • 方法名:add
  • 参数说明:
// 方法
add(region: RoundRegionOptions | Array<RoundRegionOptions>): this {}
// RoundRegionOptions 参数说明
export type RoundRegionOptions = {
  id: string; // 唯一 id
  groupId: string; // 分组 id
  coordinate: Array<number>; // 圆心坐标
  radius?: number; // 半径
  height?: number; // 高度
  regionColor?: string | Array<number>; // 颜色
};
  • 示例参考:
async function handleMsg(count = 10) {
  const infos = []
  for (let i = 0; i < count; i++) {
    const info = {
      id: uuid(),
      groupId: `test-group-${handleCount}`,
      coordinate: [
        121.99869537353516 + Math.random() * 0.01,
        40.746940612792969 + +Math.random() * 0.01,
        31.902296066284
      ],
      radius: 50,
      height: 20,
      regionColor: 'red'
    }
    infos.push(info)
  }
  viewer.roundRegion.add(infos)
  handleCount++
}

根据分组 id 完成区域移除

  • 根据分组id移除三维场景中已添加的区域
  • 方法名:removeByGroupIds
  • 参数说明:
// 方法 groupIds 分组 id 数组
  removeByGroupIds(groupIds: Array<string>) {}
  • 示例参考:
viewer.roundRegion.removeByGroupIds(['test-group'])

根据 id 完成区域移除

  • 根据 id 移除三维场景中已添加的区域
  • 方法名:removeByIds
  • 参数说明:
// id 数组
removeByIds(ids: Array<string>) {}
  • 示例参考:
viewer.roundRegion.removeByIds(['test-id'])

清空所有区域

  • 清空三维场景中已添加的所有区域
  • 方法名:clear
  • 参数说明:
// 方法
clear() {}
  • 示例参考:
 viewer.roundRegion.clear()

显示/隐藏所有区域

  • 显示/隐藏三维场景中已添加的所有区域
  • 方法名:setVisible
  • 参数说明:
// 方法
setVisible(visible: boolean): this {}
  • 示例参考:
viewer.roundRegion.setVisible(false)

根据分组 id 显示/隐藏区域

  • 根据分组 id 显示/隐藏三维场景中已添加的区域
  • 方法名:setVisibleByGroupIds
  • 参数说明:
// 方法
setVisibleByGroupIds(groupIds: Array<string>, visible: boolean): this {}
  • 示例参考:
 viewer.roundRegion.setVisibleByGroupIds(['test-group-0'], false)

根据 id 显示/隐藏区域

  • 根据 id 显示/隐藏三维场景中已添加的区域
  • 方法名:setVisibleByIds
  • 参数说明:
// 方法
setVisibleByIds(ids: Array<string>, visible: boolean): this {}
  • 示例参考:
 viewer.roundRegion.setVisibleByIds(['test-id'], false)

圆形区域事件

  • 目前支持响应三维场景中已添加的圆形区域的点击事件
  • 方法名:on/off
  • 参数说明:
// 开启 区域 点击事件监听
on(type: RegionEventType, callback, context) {}

// 关闭 区域 点击事件监听
off(type: RegionEventType, callback, context): boolean {}

// RegionEventType 参数说明
export class RegionEventType {
  static Click = 'click' as const;
}
  • 示例参考:
 viewer.roundRegion.on(RegionEventType.Click, (evt:any) => {
   console.log(evt)
 })
  • 回调的数据格式说明:
{
  eventName: 'OnRoundClick',
  datas: {
    id: 'test-id',
    regionColor: [1, 0, 0, 1],
    height: 20,
    radius: 50,
    coordinate: [122.00657653808594, 40.74927520751953, 31.90229606628418]
  }
}
上次更新:
贡献者: zhaotianliang