效果(截取部分效果)
代码
// primitives可加载大量数据,性能方面比entities要好一些
let billboard = viewer.scene.primitives.add(new Cesium.BillboardCollection());
billboards.add({
image: imgUrl, // 图片地址
width: 22,
height: 22,
// scale: 1.0,
// sizeInMeters : true, //图像的尺寸被指定成图像实际的尺寸
position: position, // 点图标的位置
collection: properties, // 什么方法?
id: "地表水"
});
因为需要获取点的属性,所以将属性赋值给 collection,billboards中未找到相关的属性赋值方法,只好出此下策。
加载点图标图标会比较模糊
解决方法:(参考链接https://blog.youkuaiyun.com/weixin_46592036/article/details/106206502)
cesium中viewer.resolutionScale默认值是1.0,也就是说无论在哪个屏幕上,cesium都把当前显示器的物理像素分辨率与CSS像素分辨率的比率(window.devicePixelRatio)当成是1.0来渲染,而实际上的比率可能是1.0或者1.25或者2.0(比如mac电脑Retina屏),所以造成锯齿和模糊。
// 解决抗锯齿问题
if (Cesium.FeatureDetection.supportsImageRenderingPixelated()) {//判断是否支持图像渲染像素化处理
this.viewer.resolutionScale = window.devicePixelRatio;
}
//是否开启抗锯齿
this.viewer.scene.fxaa = true;// 关闭fxaa 最新的cesium已经将fxaa移到PostProcessStageCollection
this.viewer.scene.postProcessStages.fxaa.enabled = true;
参考博客:https://blog.youkuaiyun.com/weixin_46592036/article/details/106206502