最近有点时间,就想回顾一下cesium的代码案例,在姿态控制这块自己也是比较欠缺的,最终选择从控制实体姿态方面开始,再完成个案例的编写后,看了最近的渔船新闻于是就有了编写一个案例的想法。于是在业余时间就寥寥草草做了一个小案例,也算自己学习巩固,欢迎大家一起学习。
实例效果图
1: 加载雷达防护和导弹阵地
雷达使用 ellipsoid
导弹阵地Model.fromGltf 加载导弹模型
2:加载卫星并创建动态信号
卫星加载使用czml
动态信号使用动态线绘制
监听卫星位置并时刻改变线的位置属性
3:加载飞机并监听位置将信号发送到卫星
飞机模型加载
c3d_sdk.viewer.entities.add({
id: d.id,
availability: new Cesium.TimeIntervalCollection([
new Cesium.TimeInterval({
start: start,
stop: stop,
}),
]),
position: d.pos,
orientation: new Cesium.VelocityOrientationProperty(d.pos),
model: {
uri: d.uri,
minimumPixelSize: d.size,
// modelMatrix:materix,
},
path: {
resolution: 1,
material: new Cesium.PolylineGlowMaterialProperty({
glowPower: 0.1,
color: Cesium.Color.YELLOW,
}),
show: false,
width: 10,
},
})
})
代码监听实时位置
c3d_sdk.viewer.clock.onTick.addEventListener((tick) => {
tar1Position = tar1._position.getValue(tick.currentTime)
tar2Position = tar2._position.getValue(tick.currentTime)
tar3Position = tar3._position.getValue(tick.currentTime)
targetPosition = satellite.position.getValue(tick.currentTime)
if(!tar3Position) {
return
}
})
效果图