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.2
的 withAlpha
值控制线条的淡化程度,范围是 0 到 1。这里的 offset
值也可以调整,以控制线条的淡化程度淡入淡出范围的位置。 leadTime
应为零,trailTime
应为轨道周期。
我正在使用 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.2
的 withAlpha
值控制线条的淡化程度,范围是 0 到 1。这里的 offset
值也可以调整,以控制线条的淡化程度淡入淡出范围的位置。 leadTime
应为零,trailTime
应为轨道周期。