Генерация динамических данных CZML с использованием NodeJS
Цезий обладает способностью отображать динамические данные, полученные из файла czml. На их сайте есть пример, показывающий, как использовать данные czml на стороне клиента.
Я хотел бы динамически генерировать данные czml на стороне сервера, используя nodejs. Есть ли какие-либо указатели или примеры того, как этого можно достичь?
1 ответ
Есть официальный czml-редактор для C# и Java, а также сторонний czml - модуль для Python, но я еще не знаю ни одного, доступного для NodeJS.
Кажется, что можно легко вывести CZML из NodeJS, просто вызвав JSON.stringify
на массиве CZML-пакетов (специально отформатированные объекты JavaScript). Для дат и интервалов можно даже импортировать цезий (или ядро цезия) в NodeJS для доступа к JulianDate
и связанные временные интервалы классов, для хранения в соответствующих полях.
Вам нужно убедиться, что первый элемент в массиве "id" : "document"
пакет (как показано в руководстве) с настройками для остальных данных CZML, и что каждый последующий пакет предоставляет уникальный id
своего собственного. После этого просто поместите несколько пакетов описания сущности в массив, и все будет хорошо.
Для объектов на орбите Земли вы можете использовать пакет czml-writer npm. Вот несколько основных способов использования:
var czml = require("czml-writer");
var orbit = new czml.orbit.fromParams({
apogee: 426.9, // km
perigee: 416.2, // km
inclination: 51.65, // deg
rightAscension: 304.1, // deg
argumentOfPeriapsis: 117.8 // deg
});
var output = orbit.czml();
var czml = require("czml-writer");
var tle = 'NOAA 14\n' +
'1 23455U 94089A 97320.90946019 .00000140 00000-0 10191-3 0 2621\n' +
'2 23455 99.0090 272.6745 0008546 223.1686 136.8816 14.11711747148495';
var orbit = new czml.orbit.fromTle(tle);
var output = orbit.czml();