Создание динамических данных CZML с помощью NodeJS

Cesium может отображать динамические данные, полученные из файла czml. На их веб-сайте есть пример, показывающий как использовать данные czml на стороне клиента.

Я хотел бы динамически генерировать данные czml на стороне сервера с помощью nodejs. Есть ли какие-либо указатели или примеры того, как этого можно достичь?


person Fidel    schedule 03.04.2017    source источник


Ответы (2)


Существует официальный czml-writer для C# и Java, а также сторонний программа записи czml для Python, но я не знаю ни одной доступной для NodeJS.

Кажется, что можно легко вывести CZML из NodeJS, просто вызвав JSON.stringify для массива пакетов CZML. (специально отформатированные объекты JavaScript). Для дат и интервалов можно даже импортировать Cesium (или Cesium Core) в NodeJS для доступа к JulianDate и связанным классам интервалов времени для сохранения в соответствующих полях.

Вам нужно убедиться, что первым элементом в массиве является пакет "id" : "document" (как показано в guide) с настройками для остальных данных CZML, и что каждый последующий пакет предоставляет уникальный собственный id. После этого просто поместите несколько пакетов описания объекта в массив, и все готово.

person emackey    schedule 03.04.2017
comment
Спасибо, emac, это очень полезно. Я последовал вашему совету и почти собрал рабочее решение. Что-то я не совсем правильно подключил. Не могли бы вы взглянуть на мой пост здесь? groups.google.com/forum/#!topic/cesium-dev/ lhzR6eUEAnM - person Fidel; 04.04.2017

Для объектов, вращающихся вокруг Земли, вы можете использовать пакет npm czml-writer. Вот некоторые основные способы использования:

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();
person John Denver    schedule 18.12.2018