const arrs = [];//经纬度数组
pointArr.forEach((item) => { //循环数据 push经纬度
arrs.push(item.lng);
arrs.push(item.lat);
});
let adr = Cesium.Cartesian3.fromDegreesArray(arrs);
let polys = Cesium.BoundingSphere.fromPoints(adr).center;
polys = Cesium.Ellipsoid.WGS84.scaleToGeodeticSurface(polys);
let ellipso = this.viewer.scene.globe.ellipsoid;
let cartesian = new Cesium.Cartesian3(polys.x, polys.y, polys.z);
let cartographic2 = ellipso.cartesianToCartographic(cartesian);
let obj2 = {};
obj2.lat = Cesium.Math.toDegrees(cartographic2.latitude);
obj2.lng = Cesium.Math.toDegrees(cartographic2.longitude);
obj2.alt = cartographic2.height;
const maxLon = Math.max.apply(Math, lonArr);
const minLon = Math.min.apply(Math, lonArr);
const maxLat = Math.max.apply(Math, latArr);
const minLat = Math.min.apply(Math, latArr);
const lat = maxLat - minLat;
const lon = maxLon - minLon;
const radius = lat > lon ? lat : lon;
const h = radius * 250000; //高度 自行调整 25000
this.$nextTick(() => {
this.viewer.camera.flyTo({
destination: Cesium.Cartesian3.fromDegrees(obj2.lng, obj2.lat, h),
});
});
}
cesium计算动态高度显示,高度刚好展示全部点位
于 2023-05-04 16:23:40 首次发布