Взаимодействие в реальном времени с CesiumJS

Вопрос: возможно ли взаимодействовать с CesiumJS в режиме реального времени. Если не. Есть ли другой вариант достижения цели.

Цель: создание имитации спутника с помощью Python и CesiumJS. Python рассчитывает траекторию и положение спутника. CesiumJS Возвращает видеопоток моделируемого спутника.

Изменить: отношение рассчитывается по возвращаемому видеопотоку. Спутник должен отслеживать конкретную область интереса (ROI). -> Может ли CesiumJS вернуть видеопоток или изображения?


person Bastler    schedule 25.11.2019    source источник


Ответы (1)


Короткий ответ: да, вы можете отправлять данные в CesiumJS в режиме реального времени. Вам нужно написать свой собственный код JavaScript, чтобы получить эти данные и обновить графику Cesium.

Но для чего-то вроде спутника, где траектория настолько предсказуема заранее, отправлять данные в реальном времени не рекомендуется. Было бы лучше, если бы ваше приложение Python предварительно рассчитало всю траекторию и отправило ее в CesiumJS посредством CZML. Затем Cesium может воспроизвести его в реальном времени или позволить пользователю перемещать время моделирования вперед и назад. Вот пример.

См. также мой ответ, описывающий Cesium Entities vs. Graphics Primitives, в котором описывается, как один уровень API Cesium адаптирован к движущейся графике. по известным путям, а нижний уровень API предназначен для примитивов, которые нуждаются в частых обновлениях в реальном времени.

person emackey    schedule 25.11.2019
comment
Спасибо, это очень помогает. Я отредактировал вопрос. Траектория действительно предсказуема. Но отношение не то. Отношение должно рассчитываться в режиме реального времени на основе спутникового обзора/камеры. - person Bastler; 26.11.2019
comment
Cesium будет использовать WebGL для рендеринга изображения на холсте, но API не возвращает данные изображения напрямую программным путем. Иногда изображение холста может быть прочитано обратно с помощью JS (canvas.toDataURL()), но Cesium общается с удаленными поставщиками изображений, которые могут создать проблему безопасности грязного холста, когда браузер предотвращает считывание окончательного изображения в виде пикселей. Использование локальных изображений, таких как NaturalEarthII, позволяет избежать этой проблемы. - person emackey; 26.11.2019
comment
Я мог представить себе траекторию, поступающую через CZML или SampledPositionProperty, и отношение, примененное позже как кватернионы entity.orientation. Я никогда не делал это так, но это должно сработать. - person emackey; 26.11.2019