Class

ClusterLayer

ClusterLayer(options)

Constructor

# new ClusterLayer(options)

全局类: 聚合图层管理

Parameters:
Name Type Description
options clusterLayerStyleOptionsType

聚合样式配置、

Example
const clusterLayer = new Cesium.Scene.ClusterLayer({style:1})

Methods

# addDataToLayer(data)

添加聚合图层

Parameters:
Name Type Description
data Array.<clusterDataType>

聚合数据

Example
const clusterLayer = new Cesium.Scene.ClusterLayer({style:1})
clusterLayer.addDataToLayer([])

# clear()

移除所有聚合点

Example
const clusterLayer = new Cesium.Scene.ClusterLayer({style:1})
         clusterLayer.clear();

# getEntityById(id) → {Cesium.Entity}

根据id 查询entity

Parameters:
Name Type Description
id number

聚合实体id

entiy

Cesium.Entity
Example
const clusterLayer = new Cesium.Scene.ClusterLayer({style:1})
        const  selectGraphic =null;
          
        viewer.screenSpaceEventHandler.setInputAction((e) => {
            const pickedObj = viewer.scene.pick(e.position);
            if (pickedObj && pickedObj.id) {
              if (pickedObj.id instanceof Cesium.Entity) {
                //选中单个
                if (pickedObj.id.layer && pickedObj.id.layer.name === "clusterLayer") {
                  selectGraphic = pickedObj.id;
                  const ent =  clusterLayer.getEntityById(selectGraphic.id);
                  console.log(ent)
                }
              }
            }
          }, Cesium.ScreenSpaceEventType.LEFT_CLICK)

# manualRaiseClusterEvent(delayopt)

手动触发聚合图层刷新

Parameters:
Name Type Attributes Default Description
delay number <optional>
2000

延迟刷新时间

Example
const clusterLayer = new Cesium.Scene.ClusterLayer({style:1})
clusterLayer.manualRaiseClusterEvent()

# setSelectById(id, enabled)

设置聚合图标选中样式

Parameters:
Name Type Description
id number

聚合实体id

enabled boolean

是否选中

Example
const clusterLayer = new Cesium.Scene.ClusterLayer({style:1})
          const  selectGraphic =null;
          
        viewer.screenSpaceEventHandler.setInputAction((e) => {
            const pickedObj = viewer.scene.pick(e.position);
            if (selectGraphic) {
              clusterLayer.setSelectById(selectGraphic.id, false);
              selectGraphic = null;
            }
          }, Cesium.ScreenSpaceEventType.LEFT_CLICK)

# unClusterFn(pickedObj)

手动解散选中的聚合点

Parameters:
Name Type Description
pickedObj object

点击选中的实体对象

Example
const clusterLayer = new Cesium.Scene.ClusterLayer({style:1})
          const  selectGraphic =null;
          
          viewer.screenSpaceEventHandler.setInputAction((e) => {
              const pickedObj = viewer.scene.pick(e.position);
              if (selectGraphic) {
                clusterLayer.setSelectById(selectGraphic.id, false);
                selectGraphic = null;
              }
              if (pickedObj && pickedObj.id) {
                if (pickedObj.id instanceof Cesium.Entity) {
                  //选中单个
                  if (pickedObj.id.layer && pickedObj.id.layer.name === "clusterLayer") {
                    selectGraphic = pickedObj.id;
                  clusterLayer.setSelectById(selectGraphic.id, true);
                    // TODO ANYTHING
                  }
                } else if (pickedObj.id instanceof Array) {
                  // 选中聚合
                  if (pickedObj.id[0].layer && pickedObj.id[0].layer.name === "clusterLayer") {
                  clusterLayer.unClusterFn(pickedObj)
                  }
                }
              }
            }, Cesium.ScreenSpaceEventType.LEFT_CLICK)