效果图:
代码:
let viewer = new Cesium.Viewer('cesiumContainer');
// box体的中心
let position = Cesium.Cartesian3.fromDegrees(113.084904, 22.931942, 200);
viewer.entities.add(new Cesium.Entity({
position: position,
point: new Cesium.PointGraphics({
color: Cesium.Color.fromAlpha(Cesium.Color.RED, 1),
pixelSize: 10,
outlineColor: Cesium.Color.fromAlpha(Cesium.Color.YELLOW, 1)
}),
}));
let heading = Cesium.Math.toRadians(10);
let hpr = new Cesium.HeadingPitchRoll(heading, 0, 0);
let orientation = Cesium.Transforms.headingPitchRollQuaternion(position, hpr);
const boxEntity = new Cesium.Entity({
// 此点在box体的中心
position: position,
// 转动盒子方向(heading,pitch,roll)
orientation: orientation,
box: {
// 设置长、宽、高都为200米
// 此处高度为200,以box体的中心作为参照,上下各100
dimensions: new Cesium.Cartesian3(200, 200, 200),
material: Cesium.Color.fromAlpha(Cesium.Color.BLUE, 0.6),
outline: true,
outlineColor: Cesium.Color.AQUA,
}
});
viewer.entities.add(boxEntity);
viewer.flyTo(boxEntity);