铯:是否有可能使尾随路径更薄?

时间:2018-06-18 13:12:12

标签: cesium

我正在使用Cesium库来模拟卫星运动。此代码用于显示路径:

path:{
                leadTime:data.data_list[0].period/2,
                trailTime:data.data_list[0].period/2,
                width:1.5,
                material: color
              }

有没有办法让尾随路径更薄?

例如,SpaceX视频:http://youtu.be/rQEqKZ7CJlk?t=47m40s

1 个答案:

答案 0 :(得分:2)

这里有几条评论。首先,宽度只有1.5,改变宽度可能不是你想要的效果。尝试使用纯色与褪色,例如更改Alpha值。这应该与您在该视频链接中看到的内容更相似。

但是,目前Cesium不支持单独的路径材料用于引导和跟踪时间。如果您确实需要使用不同颜色/宽度/等显示的引导路径和路径路径,则必须在CZML中插入重复的实体(其位置可以只是对主要实体位置的引用),这样一个实体只能拥有一个提前期,另一个只有一个跟踪时间,他们使用不同的路径材料。

但是如果你有一颗稳定轨道上的卫星,那么你可以选择不同的方法,因为它会绕着同一条路径盘旋。您可以使用StripeMaterial使轨道线从一侧淡入另一侧。

Molniya orbit with faded line

这里有live demo加载simple.czml并用褪色的线代替Molniya的黄色轨道。坚固的部分是卫星的最新踪迹,褪色的部分向后延伸得更远,但用于显示卫星下一步的位置。

Cesium.Camera.DEFAULT_VIEW_FACTOR = 5.5;

var viewer = new Cesium.Viewer('cesiumContainer', {
    shouldAnimate : true
});

Cesium.CzmlDataSource.load('../../../../Apps/SampleData/simple.czml').then(function(dataSource) {
    viewer.dataSources.add(dataSource);
    viewer.camera.flyHome(0);
    viewer.clock.multiplier = 1800;

    var entity = dataSource.entities.getById('Satellite/Molniya_1-92');

    var fadedLine = new Cesium.StripeMaterialProperty({
        // The newest part of the line is bright yellow.
        evenColor: Cesium.Color.YELLOW,
        // The oldest part of the line is yellow with a low alpha value.
        oddColor: Cesium.Color.YELLOW.withAlpha(0.2),
        repeat: 1,
        offset: 0.25,
        orientation: Cesium.StripeOrientation.VERTICAL
    });

    entity.path.material = fadedLine;
    entity.path.leadTime = new Cesium.ConstantProperty(0);
    entity.path.trailTime = new Cesium.ConstantProperty(3600 * 12);
});

当然,在这里你可以玩颜色,但我建议保持相同的基色为偶数和奇数。此处withAlpha0.2的{​​{1}}值控制线条的褪色程度,范围为0到1.此处的oddColor值也可以调整,以控制放置淡入淡出范围。 offset应为零,leadTime应为轨道周期。