Cesium:是否有可能使拖尾路径更细?

Cesium: Is it possible to make the trailing path thinner?

我正在使用 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.5,改变宽度可能不是您想要的效果。尝试使用纯色与褪色,例如通过更改 alpha 值。这应该与您在该视频中看到的内容更相似 link。

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

但是如果你有一颗处于稳定轨道上的卫星,你可以采取不同的方法,因为它一直围绕着同一条路径旋转。您可以使用 StripeMaterial 使轨道线从一侧淡化到另一侧。

这是一个 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);
});

当然,您可以在这里玩转颜色,但我建议偶数和奇数保持相同的基色。 oddColor 上的 0.2withAlpha 值控制线条的淡化程度,范围是 0 到 1。这里的 offset 值也可以调整,以控制线条的淡化程度淡入淡出范围的位置。 leadTime 应为零,trailTime 应为轨道周期。