cesium模拟卫星环绕
2024-01-08 18:20:43
效果:
网上查询很多方法个人觉得较为复杂冗余 以下按照个人想法完成效果:
1.设置模拟时间
2.初始化轨道坐标
3.按照坐标把轨道画出来
4.添加卫星模型
5.优化卫星轨迹
1.设置模拟时间代码:
// 设定了模拟时间的边界
var start = new Cesium.JulianDate.fromDate(new Date()); // 当前时间
start = Cesium.JulianDate.addHours(start, 8, new Cesium.JulianDate()); //东八区时间
// 结束时间
var stop = Cesium.JulianDate.addSeconds(start, 360, new Cesium.JulianDate());
//确保查看器处于预期的时间
viewer.clock.startTime = start.clone();
viewer.clock.stopTime = stop.clone();
viewer.clock.currentTime = start.clone();
viewer.clock.clockRange = Cesium.ClockRange.LOOP_STOP; //循环结束时
//时间变化来控制速度 // 时间速率,数字越大时间过的越快
viewer.clock.multiplier = 10;
2.初始化轨道坐标代码:
// 动态控制模型的位置,达到模型沿轨迹平滑移动的目的 后面优化卫星轨迹会用到这个
var positionArr = new Cesium.SampledPositionProperty();
var lon = Math.floor(Math.random() * 360);
var lat = Math.floor(Math.random() * 360);
var line = []; //轨道坐标集合
for (let k = lat; k <= 360 + lat; k += 30) {
let obj = {
lon: lon,
lat: k,
time: k - lat,
alt: 2000000,
};
var time = Cesium.JulianDate.addSeconds(
start,
obj.time,
new Cesium.JulianDate()
);
// 按轨迹画点以便于直观验证轨迹坐标点
// viewer.entities.add({
// position: Cesium.Cartesian3.fromDegrees(obj.lon
文章来源:https://blog.csdn.net/m0_63701303/article/details/135458358
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!