Можно ли вызывать функции цезия из C #, используя юрский период - PullRequest
1 голос
/ 28 марта 2019

Cesium, средство просмотра глобуса javascript, имеет вспомогательные функции, которые полезны для манипулирования данными при создании объектов czml.При создании czml в C # для потоковой передачи в цезий было бы удобно иметь возможность вызывать некоторые из этих служебных функций.Я пытался сделать это, используя юрский период, но не очень далеко.Вот что у меня есть:

var engine = new Jurassic.ScriptEngine();
engine.ExecuteFile(@"Cesium.js");

var heading = 1.570794347807811;
var pitch = 0;
var roll = 0;

var lat = -36.4301305554453;
var lon = 137.009308186922;
var alt = 10;

var center = engine.Evaluate($"Cesium.Cartesian3.fromDegrees({lon}, {lat}, {alt})");
var hpr = engine.Evaluate($"new Cesium.HeadingPitchRoll({heading},{pitch}, {roll});");
var quaternion = engine.Evaluate($"Cesium.Transforms.headingPitchRollQuaternion({center}, {hpr})");

Однако это не проходит после первого звонка в Цезий.Я получил следующие JavaScriptExceptions от ExecuteFile(@"Cesium.js"), но выполнение продолжилось, поэтому я не знаю, заключается ли проблема в загрузке скрипта Cesium.js:

TypeError: undefined не может быть преобразован в объект

TypeError: Нулевое значение не может быть преобразовано в объект

ReferenceError: XMLHttpRequest не определено

ReferenceError: BLOB-объект не определено

После загрузкиСценарий Cesium.js при первом вызове Cesium в engine.Evaluate() завершается с:

ReferenceError: Цезий не определен

...