argon.jsサーバー側を使用して、lla座標を定義済みの参照フレームに変換できるようにしようとしています。私はもちろん、グラフィックスを描画していない、私はちょうど値を変換するために使用しています。詳細はSOの質問 Using Geo-coordintes Instead of Cartesian to Draw in Argon and A-Frame を参照してください。Argon.js:エラー:フレームの状態がまだ受信されていません
スレッドごとに、固定座標のセシウムエンティティを作成しようとしていますが、これを後で他のエンティティを作成するために使用します。私がするとき、私はError: A frame state has not yet been received
を受け取るプログラムvar gtrefEntityPose = app.context.getEntityPose(gtrefEntity);
の最後の行に達するまですべてが実行されます。
私はこれがローカル側のユーザーをまだ持っていないので、デフォルトの参照エンティティをapp.context.setDefaultReferenceFrame(app.context.localOriginEastUpSouth);
に設定していることが原因であると考えました。 setDefaultReferenceFrameのドキュメントを参照し、convertEntityReferenceFrameとそれぞれのソースコードを使用する必要がある可能性も考えましたが、プログラムの知識があれば分かりません。
下記のエラーと私のアプリケーションコードを入れました。
ありがとうございました!ここで
/home/path/to/folder/node_modules/@argonjs/argon/dist/argon.js:4323
if (!cesium_imports_1.defined(this.serializedFrameState)) throw new Error(
^
Error: A frame state has not yet been received
at ContextService.Object.defineProperty.get [as frame] (/home/path/to/folder/node_modules/@argonjs/argon/dist/argon.js:4323:89)
at ContextService.getTime (/home/path/to/folder/node_modules/@argonjs/argon/dist/argon.js:4343:32)
at ContextService.getEntityPose (/home/path/to/folder/node_modules/@argonjs/argon/dist/argon.js:4381:37)
at Object.<anonymous> (/home/path/to/folder/test.js:27:35)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Function.Module.runMain (module.js:501:10)
at startup (node.js:129:16)
が私のコードです:それは、現在設計されていますとおり
var Argon = require('@argonjs/argon');
var Cesium = Argon.Cesium;
var Cartesian3 = Cesium.Cartesian3;
var ConstantPositionProperty = Cesium.ConstantPositionProperty;
var ReferenceFrame = Cesium.ReferenceFrame;
var ReferenceEntity = Cesium.ReferenceEntity;
//var degToRad = THREE.Math.degToRad;
const app = Argon.init();
app.context.setDefaultReferenceFrame(app.context.localOriginEastUpSouth);
var data = { lla : { x : -84.398881, y : 33.778463, z : 276 }};
var gtref = Cartesian3.fromDegrees(data.lla.x, data.lla.y, data.lla.z);
var options = { position: new ConstantPositionProperty(gtref, ReferenceFrame.FIXED),
orientation: Cesium.Quaternion.IDENTITY
};
var gtrefEntity = new Cesium.Entity(options);
var gtrefEntityPose = app.context.getEntityPose(gtrefEntity);
これが完成しました。ありがとう!はい、まさに私がsocket.ioでしようとしていることです。 – crld