feat: 为卫星实体和覆盖范围添加随机基色

This commit is contained in:
严浩
2025-04-02 15:33:33 +08:00
parent db9d394171
commit 098a769dbd

View File

@ -183,6 +183,9 @@ export class HCesiumViewerCls {
return null; return null;
} }
// 生成随机基色
const randomBaseColor = Cesium.Color.fromRandom();
// 创建卫星实体 // 创建卫星实体
const satelliteEntity = this.viewer.entities.add({ const satelliteEntity = this.viewer.entities.add({
id: id, id: id,
@ -200,7 +203,7 @@ export class HCesiumViewerCls {
// 使用点表示卫星 // 使用点表示卫星
point: { point: {
pixelSize: 8, pixelSize: 8,
color: Cesium.Color.YELLOW, color: randomBaseColor, // 使用随机基色
outlineColor: Cesium.Color.WHITE, outlineColor: Cesium.Color.WHITE,
outlineWidth: 1, outlineWidth: 1,
}, },
@ -209,7 +212,7 @@ export class HCesiumViewerCls {
resolution: 1, resolution: 1,
material: new Cesium.PolylineGlowMaterialProperty({ material: new Cesium.PolylineGlowMaterialProperty({
glowPower: 0.15, glowPower: 0.15,
color: Cesium.Color.BLUE, color: randomBaseColor, // 使用随机基色
}), }),
width: 2, width: 2,
leadTime: (orbitDurationHours * 3600) / 2, // 显示未来一半时间的轨迹 leadTime: (orbitDurationHours * 3600) / 2, // 显示未来一半时间的轨迹
@ -308,12 +311,12 @@ export class HCesiumViewerCls {
ellipse: { ellipse: {
semiMajorAxis: coverageRadius, semiMajorAxis: coverageRadius,
semiMinorAxis: coverageRadius, // 假设圆形覆盖 semiMinorAxis: coverageRadius, // 假设圆形覆盖
material: Cesium.Color.RED.withAlpha(0.3), // 半透明红色 material: randomBaseColor.withAlpha(0.2), // 基于随机基色的半透明填充
heightReference: Cesium.HeightReference.CLAMP_TO_GROUND, // 贴合地形 heightReference: Cesium.HeightReference.CLAMP_TO_GROUND, // 贴合地形
outline: true, outline: true,
outlineColor: Cesium.Color.BLACK.withAlpha(0.5), outlineColor: randomBaseColor.withAlpha(0.8), // 基于随机基色的较深半透明轮廓
outlineWidth: 1, outlineWidth: 2, //
// fill: true, // 默认填充 granularity: Cesium.Math.toRadians(1), // 控制椭圆边缘平滑度
}, },
}); });
// --- 覆盖范围结束 --- // --- 覆盖范围结束 ---
@ -328,7 +331,7 @@ export class HCesiumViewerCls {
positions: orbitPositions, positions: orbitPositions,
width: 1, width: 1,
material: new Cesium.PolylineDashMaterialProperty({ material: new Cesium.PolylineDashMaterialProperty({
color: Cesium.Color.CYAN.withAlpha(0.5), // 半透明青色虚线 color: randomBaseColor.withAlpha(0.5), // 基于随机基色的半透明虚线
dashLength: 16, dashLength: 16,
}), }),
clampToGround: false, // 轨道不贴地 clampToGround: false, // 轨道不贴地