Cesium Color 颜色
// 设置透明度(withAlpha)
Cesium.Color.BLUE.withAlpha(0.4)
// 透明色
Cesium.Color.TRANSPARENT;
// CSS色值转换
Cesium.Color.fromCssColorString("#ffffff")
Cesium.Color.fromCssColorString("rgba(255, 255, 255, 0.75)")
// 32位GRBA值
Cesium.Color.fromRgba(0x67ADDFFF)
// 随机颜色(alpha 透明度)
Cesium.Color.fromRandom({alpha: 0.5})
cesium常用事件
let handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);
// 左键单击事件
handler.setInputAction(function (e) {
// 获取点击位置坐标
let cartesian = viewer.scene.pickPosition(e.position);
let cartographic = Cesium.Cartographic.fromCartesian(cartesian);
let lng = Cesium.Math.toDegrees(cartographic.longitude); // 经度
let lat = Cesium.Math.toDegrees(cartographic.latitude); // 纬度
let height = cartographic.height //高度
// 获取点击位置模型和实体(entity)
let pickedObject = viewer.scene.pick(e.position);
}, Cesium.ScreenSpaceEventType.LEFT_CLICK);
// 鼠标悬浮事件
handler.setInputAction(function (e) {
}, Cesium.ScreenSpaceEventType.MOUSE_MOVE);
//监听渲染
viewer.scene.postRender.addEventListener(function (){
//每一帧触发
})
//相机变化触发
viewer.camera.changed.addEventListener(function (){
})
开启场景阴影和模型阴影
//开启场景阴影
viewer.scene.sun.show = true;//开启阳光照
viewer.scene.shadowMap.enabled = true;//开启阴影
//开启图层阴影,必须先开启场景阴影 --layer加载的图层对象
layer.shadowType = Cesium.ShadowType.ALL
//所有参数
//Cesium.ShadowType.ALL//图层上所有的模型都产生阴影
//Cesium.ShadowType.NONE//关闭阴影
//Cesium.ShadowType.SELECTION//图层选中的模型产生阴影
IndexDB优化加载图层速度,内存常驻图层拖远不会触发LOD
const maxMemory = Cesium.MemoryManager.getMaxMemory() //获取可用内存的最大空间
const CacheSize = Cesium.MemoryManager.getCacheSize() //获取缓存空间大小
Cesium.MemoryManager.setCacheSize(maxMemory) //设置缓存空间大小单位MB
Cesium.MemoryManager.setMaxMemory(maxMemory - 500)//设置内存的最大空间单位MB
//加载完后的图层
layer.indexedDBSetting.isGeoTilesSave = true; // 设置是否保存切片缓存
layer.indexedDBSetting.isGeoTilesRootNodeSave = true; // 保存根节点
layer.indexedDBSetting.isAttributesSave = true //保存属性
layer.clearMemoryImmediately = false//是否及时释放内存,默认值为true,若设置为false.
设置图层线框模式
//设置线框模式
layer.style3D.fillStyle = Cesium.FillStyle.Fill_And_WireFrame;
layer.wireFrameMode = Cesium.WireFrameType.EffectOutline;
layer.style3D.lineWidth = 1; //设置线框宽度
关闭地形裙边
//每次加载地形都要重新设置
viewer.terrainProvider.isCreateSkirt = false; //地形关闭裙边
设置场景光照
//设置时间光照受时间影响。
viewer.clock.currentTime = Cesium.JulianDate.fromDate(new Date("2021/07/04 11:00:00"));
//设置图层是否受光照影响
layer.hasLight = true
开启深度检测
viewer.scene.globe.depthTestAgainstTerrain = true; // 开启深度检测
经纬度转换
//经纬度转换笛卡尔三
Cesium.Cartesian3.fromDegrees(x, y, z);
//经纬度集合转换笛卡尔三
Cesium.Cartesian3.fromDegreesArray(positions);
关闭透明排序
layer.orderIndependentTranslucency = false;
关闭entity的遮掩
disableDepthTestDistance: Number.POSITIVE_INFINITY //永远不会应用深度测试
distanceDisplayCondition:Cesium.DistanceDisplayCondition(0.0, distanceDisplay)//显示距离