一、创建范围矩形
var rectangle = new Cesium.Rectangle.fromDegrees(west, south, east, north);
二、相机定位
viewer.camera.flyTo({
destination: rectangle
});
三、使用示例记录一下
需求是从后台获取到的路线,前端绘制在cesium中并需要居中显示。
计算出坐标点中的经度和纬度的最大最小值,即为需要显示的范围。
//arr:坐标点数组
//offset:四周留白距离(可选)
export const flyToLineCenter = (arr,offset)=>{ let long_max=arr[0][0] //east let long_min=arr[0][0] //west let lat_max=arr[0][1] //north let lat_min=arr[0][1] //south for(let i=0;i<arr.length;i++){ if(arr[i][0]>long_max){ long_max=arr[i][0] } if(arr[i][0]<long_min){ long_min=arr[i][0] } if(arr[i][1]>lat_max){ lat_max=arr[i][1] } if(arr[i][1]<lat_min){ lat_min=arr[i][1] } } let offset_num = offset?offset:0 let rectangle = new Cesium.Rectangle.fromDegrees(long_min-offset_num, lat_min-offset_num, long_max+offset_num, lat_max+offset_num); viewer.camera.flyTo({ destination: rectangle }); }