let?enabled?=?true;///是否聚合
let?pixelRange?=?15;//聚合范圍(單位px)
let?minimumClusterSize?=?3;//最小聚合數(shù)值(小于等于該數(shù)值,不聚合)
let?myDataSource?=?new?Cesium.CustomDataSource("myDataSource");?//實(shí)例化實(shí)體級(jí)對(duì)象(實(shí)現(xiàn),可用于手動(dòng)管理一組實(shí)體)
let?obj?=?createEntityObj(data);//創(chuàng)建entity實(shí)例屬性
let?entity?=?myDataSource.entities.add(obj);
//添加entity數(shù)組
viewer.dataSources.add(myDataSource).then(function?(dataSource)?{
????dataSource.clustering.enabled?=?enabled;//是否聚合
????dataSource.clustering.pixelRange?=?pixelRange;//聚合范圍(單位px)
????dataSource.clustering.minimumClusterSize?=?minimumClusterSize;//最小屏幕聚合對(duì)象數(shù)值(小于等于該數(shù)值,不聚合)
});
//創(chuàng)建entity實(shí)例屬性
function?createEntityObj(item)?{
??return?{
????position:?Cesium.Cartesian3.fromDegrees(lon,?lat),
????label:?{
??????text:?item.text,
??????font:?"28px?sans-serif",
??????scale:?0.5,
??????pixelOffset:?new?Cesium.Cartesian2(0,?-55),
??????fillColor:?Cesium.Color.YELLOW,
??????outlineColor:?Cesium.Color.GRAY,
??????style:?Cesium.LabelStyle.FILL_AND_OUTLINE,
??????outlineWidth:?8,
??????heightReference:?Cesium.HeightReference.CLAMP_TO_GROUND,
????},
????billboard:?{
??????image:?"../images/image.png",
??????width:?36,
??????height:?36,
??????heightReference:?Cesium.HeightReference.CLAMP_TO_GROUND,
????},
??};
}
當(dāng)entity數(shù)量過大時(shí),會(huì)出現(xiàn)label無法聚合的情況,這時(shí)我們將dataSource.clustering.pixelRange(聚合范圍)的值調(diào)大,同時(shí)也將?dataSource.clustering.minimumClusterSize(最小屏幕聚合對(duì)象數(shù)值,小于等于該數(shù)值,不聚合)值增大,就可以解決。