Cesium切换视角中心点不变

📅 发布时间:2026/7/12 18:02:06 👁️ 浏览次数:
Cesium切换视角中心点不变
1. 倾斜2. 回正实现思路在改变相机视角前用相机高度和三角函数计算出一个偏移量改变中心点的经纬度即可/** * 静态工具根据俯仰角切换相机视角 * param {Cesium.Viewer} viewer Cesium Viewer * param {number} lng 经度 * param {number} lat 纬度 * param {number} alt 高度米 * param {number} pitchDeg 俯仰角角度制-90 垂直向下 */staticupdateCameraByPerspective(viewer,lng,lat,alt,pitchDeg){if(!viewer||typeofpitchDeg!number)return;constpitchCesium.Math.toRadians(pitchDeg);letpositionCesium.Cartesian3.fromDegrees(lng,lat,alt);// 非 90° 俯视时修正位置constabsPitchMath.abs(pitchDeg);if(absPitch89){constoffsetalt/Math.tan(absPitch*Math.PI/180);constheadingviewer.camera.heading;constoffsetX-offset*Math.sin(heading);constoffsetY-offset*Math.cos(heading);constenuCesium.Transforms.eastNorthUpToFixedFrame(position);constoffsetVecnewCesium.Cartesian3(offsetX,offsetY,0);positionCesium.Matrix4.multiplyByPoint(enu,offsetVec,newCesium.Cartesian3());}viewer.camera.flyTo({destination:position,orientation:{heading:viewer.camera.heading,pitch,roll:0}});}