cesium聚合entity时label聚合不了的问题

let enabled = true;///是否聚合

let pixelRange = 15;//聚合范围(单位px)

let minimumClusterSize = 3;//最小聚合数值(小于等于该数值,不聚合)

let myDataSource = new Cesium.CustomDataSource("myDataSource"); //实例化实体级对象(实现,可用于手动管理一组实体)

let obj = createEntityObj(data);//创建entity实例属性

let entity = myDataSource.entities.add(obj);

//添加entity数组

viewer.dataSources.add(myDataSource).then(function (dataSource) {

    dataSource.clustering.enabled = enabled;//是否聚合

    dataSource.clustering.pixelRange = pixelRange;//聚合范围(单位px)

    dataSource.clustering.minimumClusterSize = minimumClusterSize;//最小屏幕聚合对象数值(小于等于该数值,不聚合)

});

//创建entity实例属性

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,

    },

  };

}


当entity数量过大时,会出现label无法聚合的情况,这时我们将dataSource.clustering.pixelRange(聚合范围)的值调大,同时也将 dataSource.clustering.minimumClusterSize(最小屏幕聚合对象数值,小于等于该数值,不聚合)值增大,就可以解决。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容