在铯中获得旋转

Get rotation in Cesium

我想知道当我使用ctrl+mouseLeft 转动地图时Cesium 的旋转角度。就像我在这张图片上所做的那样:

我试过 viewer.camera.roll 但似乎不对。它始终为零。

关于如何在 2D 和 3D 中获得该值的任何提示?我也想设置这个值。

提前致谢!

编辑: 我已经使用了建议的解决方案,现在我得到了不同的值(以弧度为单位)。它适用于 2D 和 3D 地图。

EDIT2:如何将旋转设置为特定角度

    setRotation(angle: number): void {
        viewer.camera.setView({
            heading: (angle / (180 / Math.PI)) // east, default value is 0.0 (north)
        })
    };

基于此doc

编辑 3: 我正在使用以下代码获取地图的当前标题:

public getAngle(): number {
    return viewer.camera.heading;
}

当我调用这个函数并且我的地图没有旋转时,如图所示,我得到了“6.283185307179586”弧度的结果。我认为它应该为零,因为它根本没有旋转。如果我用鼠标(平移)移动地图并再次调用 getAngle 函数,它会给出不同的结果,如果我将它向北移动,则结果为“1.4612025367455317e-8”。有什么想法吗?我想获取地图的标题。

非常感谢!

此值可从 viewer.camera.heading 获得,以弧度表示。您可以使用相机上的 twistLeft and twistRight 功能像这样扭曲相机。