EntityCluster
是 CesiumJS 中的一种聚合实体(entity)的方式。可以将大量的聚合实体,通过 EntityCluster
进行聚合,以便更好的展现和管理。
EntityCluster
的聚合是根据聚合距离和聚合容差来决定的。当一个聚合实体接近另一个聚合实体时,并且它们的距离小于聚合距离,且形状大小差异小于聚合容差时,它们就会被聚合在一起,形成一个新的聚合实体。
var viewer = new Cesium.Viewer('cesiumContainer');
var entities = [];
for (var i = 0; i < 10000; i++) {
entities.push(viewer.entities.add({
position: Cesium.Cartesian3.fromDegrees(-75.59777 + Math.random(), 40.03883 + Math.random()),
point: new Cesium.PointGraphics({
color: Cesium.Color.RED.withAlpha(0.5),
pixelSize: 5
})
}));
}
var cluster = viewer.entities.add(new Cesium.EntityCluster({
distance: 1000,
pixelRange: 20
}));
options {Object}
聚合实体的配置选项对象。以下是其中可选的属性:
{Number}
聚合距离。大于该距离的聚合实体不会被聚合。默认值为 100
。{Number}
聚合容差,以像素为单位。差异大于该容差的聚合实体不会被聚合。默认值为 10
。{Number}
时间戳,以毫秒为单位。更新聚合实体的状态。该方法在帧循环中被调用。
获取或设置聚合距离。大于该距离的聚合实体不会被聚合。默认值为 100
。
获取或设置聚合容差,以像素为单位。差异大于该容差的聚合实体不会被聚合。默认值为 10
。
当聚合实体的状态有变化时,该事件将被触发。
{Function}
事件回调函数。该函数将在聚合实体状态变化时被调用。var cluster = viewer.entities.add(new Cesium.EntityCluster({
distance: 1000,
pixelRange: 20
}));
cluster.clusterEvent.addEventListener(function() {
console.log('The cluster state has changed.');
});