假设你已经完成了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)