cesium获取当前视角,临时存储后,初始化页面恢复到当前视角

  • 假设你已经完成了cesium的初始化配置,viewer实例

  • 第一步获取当前相机的视角信息(笛卡尔坐标系,方向角(弧度),俯仰角(弧度),翻滚角(弧度))

         let cameraState = {
            position: Cesium.Cartographic.fromCartesian(viewer.camera.position),// 获取相机位置(笛卡尔坐标)
            heading: viewer.camera.heading,
            pitch: viewer.camera.pitch,
            roll: viewer.camera.roll
          };
          localStorage.setItem('localCameraState',JSON.stringify(cameraState));//存在浏览器缓存
  • 第二步,其他页面读取缓存
//这个延时器可以不要
 setTimeout(()=>{
              let cameraStateJson = localStorage.getItem('localCameraState');
              if (cameraStateJson){
                cameraStateJson = JSON.parse(cameraStateJson);
                console.log('cameraStateJson--->',cameraStateJson)
                // 提取经度和纬度
                let longitude = Cesium.Math.toDegrees(cameraStateJson.position.longitude); // 经度转换为度
                let latitude = Cesium.Math.toDegrees(cameraStateJson.position.latitude); // 纬度转换为度
                let height = cameraStateJson.position.height
                viewer.camera.setView({
                  destination: Cesium.Cartesian3.fromDegrees(longitude, latitude, height),
                  orientation: {
                    heading: cameraStateJson.heading,
                    pitch: cameraStateJson.pitch,
                    roll: cameraStateJson.roll
                  }
                });

              }

},500)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容