我正在考虑保存相机位置(特别是旋转),因此在2D和3D之间来回切换将始终返回到我上次在3D中查看的位置。这样做的最佳方式是什么?
我还想将其保存为cookie或本地存储空间,以便用户可以直接进入页面上保存的视图,其中包含来自其他页面(可能不是美国)的Cesium。
答案 0 :(得分:5)
我建议您在切换视图之前创建一个简单的JS对象并存储摄像头的属性。然后将其存储到localStorage中。我发现store.js是浏览器无关的本地存储的一个非常有用的包装器。
如果你需要更多帮助,我可以在今晚晚些时候提出一个例子。
var camera = $scope.viewer.scene.camera;
var store = {
position: camera.position.clone(),
direction: camera.direction.clone(),
up: camera.up.clone(),
right: camera.right.clone(),
transform: camera.transform.clone(),
frustum: camera.frustum.clone()
};
答案 1 :(得分:0)
基于Mike LP的答案:
let undoCamera = {
position: this.camera.position.clone(),
direction: this.camera.direction.clone(),
up: this.camera.up.clone()
};
this.camera.position = undoCamera.position;
this.camera.direction = undoCamera.direction;
this.camera.up = undoCamera.up;
这至少在3D和Columbus模式下对我有效。
如果需要,您也可以对frustum
进行同样的操作。