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)