cesium如何飞到指定层级
下方代码是cesium中视角高度转层级的代码
export function heightToZoom(altitude: number): number {
const A = 40487.57;
const B = 0.00007096758;
const C = 91610.74;
const D = -40467.74;
return Math.round(D + (A - D) / (1 + Math.pow(altitude / C, B)));
}
那么飞到指定层级首先获取当前相机位置 拿到经纬度。
之后反转上方的代码 根据层级获取视角高度
function getAltitudeByLevel(level: any) {
const A = 40487.57;
const B = 0.00007096758;
const C = 91610.74;
const D = -40467.74;
const E = A - D;
// 计算 altitude
const altitude = C * Math.pow(E / (level - D) - 1, 1 / B);
return Math.round(altitude);
}
getAltitudeByLevel(16) // 6356.0
根据获取的高度 调用flyTo方法
viewer.camera.flyTo({
destination: Cesium.Cartesian3.fromDegrees(
116.397128,
39.916527,
getAltitudeByLevel(16)
)
});