Цезий: Можно ли сделать задний путь более тонким?
Я использую библиотеку Цезия для моделирования движения спутника. Этот код используется, чтобы показать путь:
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 ответ
Пара комментариев здесь. Во-первых, при ширине всего 1,5 изменение ширины, скорее всего, не тот эффект, который вам нужен. Попробуйте использовать сплошной цвет вместо выцветшего, например, изменив значение альфа. Это должно быть больше похоже на то, что вы видите в этой ссылке на видео.
Но в настоящее время цезий не поддерживает отдельные материалы пути для времени свинца и следа. Если вам действительно нужны пути следования и следа, показанные с разными цветами / шириной / и т. Д., Вам нужно вставить дублирующую сущность в ваш CZML (позиция которой может быть просто ссылкой на позицию первичной сущности), так что одна сущность может иметь только время выполнения заказа, а у другого - только время следа, и они используют разные материалы пути.
Но если у вас есть спутник на стабильной орбите, у вас есть другой подход, который вы можете использовать, потому что вещь продолжает вращаться вокруг одного и того же пути. Вы можете использовать StripeMaterial
заставить линию орбиты исчезнуть от одной стороны до другого.
Вот живое демо, которое загружает simple.czml
и заменяет желтую орбиту Молния блеклой линией. Сплошная часть - самый последний след спутника, а затемненная часть находится намного дальше назад, но служит для того, чтобы показать, куда направляется спутник.
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
на oddColor
здесь контролирует, как линия исчезла, диапазон от 0 до 1. offset
значение здесь также может быть изменено, чтобы контролировать размещение диапазона затухания. leadTime
должно быть ноль, и trailTime
должен быть период орбиты.