我正在使用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
答案 0 :(得分:2)
这里有几条评论。首先,宽度只有1.5,改变宽度可能不是你想要的效果。尝试使用纯色与褪色,例如更改Alpha值。这应该与您在该视频链接中看到的内容更相似。
但是,目前Cesium不支持单独的路径材料用于引导和跟踪时间。如果您确实需要使用不同颜色/宽度/等显示的引导路径和路径路径,则必须在CZML中插入重复的实体(其位置可以只是对主要实体位置的引用),这样一个实体只能拥有一个提前期,另一个只有一个跟踪时间,他们使用不同的路径材料。
但是如果你有一颗稳定轨道上的卫星,那么你可以选择不同的方法,因为它会绕着同一条路径盘旋。您可以使用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);
});
当然,在这里你可以玩颜色,但我建议保持相同的基色为偶数和奇数。此处withAlpha
上0.2
的{{1}}值控制线条的褪色程度,范围为0到1.此处的oddColor
值也可以调整,以控制放置淡入淡出范围。 offset
应为零,leadTime
应为轨道周期。