Cesiumczml创建卫星轨迹并模拟卫星扫描

更新时间:2023-06-13 00:10:42 阅读: 评论:0

Cesiumczml创建卫星轨迹并模拟卫星扫描
最近⼀直在弄卫星轨迹的运动,并且模拟卫星扫描;
特别授权代理权限
先晒个结果:
之前做了sgp4模拟卫星轨道,但是那个真实性太差,通过sgp4⽣成的轨道是不动的,真实的情况下卫星的轨道也是运动的,所以⼀般来说还得通过czml来⽣成轨道展⽰卫星运动;
在未加载扫描功能之前,单独加载czml可以正常展⽰卫星的运动情况,但后续客户提出了加上扫描功能,以及计算卫星何时过境,在某个时间段内会有哪⼏颗卫星过境;
乘电梯先说下⼤致的思路:其中如动图所⽰,扫描的样式是⽤cylinder做的,这个后续会再完善成波纹形状;主要还是运⽤了sampleproperty,将卫星运动的time和position也绑定到cylinder上,并且将cylinder的⾼度修改为卫星的⼀半;
以下是核⼼代码:
var property;
viewer.dataSources.add(Cesium.CzmlDataSource.load("../l")).then(function(dataSource) {
satellite = ById("Satellite/GAOFEN 1");
property = new Cesium.SampledPositionProperty();白羊座女生
for (var ind = 0; ind < 292; ind++) {
var time = Cesium.JulianDate.addSeconds(clock.currentTime, 300*ind, new Cesium.JulianDate());
var position = Value(time);
var cartographic = ellipsoid.cartesianToCartographic(position);
var lat = Degrees(cartographic.latitude),酒能不能上高铁
电影字幕字体lng = Degrees(cartographic.longitude),
hei = cartographic.height / 1.9;
property.addSample(time, Cesium.Cartesian3.fromDegrees(lng, lat, hei));
}
cylinderEntity.position = property;
致加西亚的一封信cylinderEntity.position.tInterpolationOptions({ //设定位置的插值算法
interpolationDegree: 5,
interpolationAlgorithm: Cesium.LagrangePolynomialApproximation
});
Tick.addEventListener(function(clock) {
蘸墨水if (property) {
var time = clock.currentTime;
黄豆面var val = Value(clock.currentTime);
console.log(val);
}
});
});
ps:之前想通过clock的ontick事件,然后监听卫星的位置再改变cylinder的位置,后来发现没法在这个ontick⾥⾯通过
cylinderEntity.position = 某个值  来达到⽬的,后来想了⼀下  可能是渲染机制的问题(纯属猜测),不信的朋友可以试下,是没效果的;

本文发布于:2023-06-13 00:10:42,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/940907.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:扫描   位置   功能   模拟
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图