一、創建范圍矩形
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 }); }