1.监听鼠标事件
2.控制经纬度框的显示和隐藏
const mouseMove = () => {
labelENtity = viewer.value.entities.add({
position: [],
id: "label",
label: {
show: false,
fillColor: Cesium.Color.WHITE, //字体颜色
backgroundColor: Cesium.Color.BLACK.withAlpha(0.5), //背景颜色
showBackground: true, //是否显示背景颜色
style: Cesium.LabelStyle.FILL, //label样式
outlineWidth: 2,
font: "14px monospace",
horizontalOrigin: Cesium.HorizontalOrigin.LEFT, //水平位置
verticalOrigin: Cesium.VerticalOrigin.TOP, //垂直位置
pixelOffset: new Cesium.Cartesian2(15, 0), //偏移
//为负值则在更上层
// eyeOffset: new Cesium.Cartesian3(0, 0, -10)
},
});
handler.value.setInputAction((movement: any) => {
let foundPosition = false;
let ray = viewer.value.camera.getPickRay(movement.endPosition);
let cartesian = viewer.value.scene.globe.pick(ray, viewer.value.scene);
if (
viewer.value.scene.pickPositionSupported &&
Cesium.defined(ray) &&
ray.id !== ""
) {
if (cartesian) {
let position: any;
position = getLngLatByCartesian3(cartesian, "");
labelENtity.label.show = true;
foundPosition = true;
labelENtity.position = Cesium.Cartesian3.fromDegrees(
position["lng"],
position["lat"]
);
}
} else {
labelENtity.label.show = false;
}
if (!foundPosition) {
labelENtity.label.show = false;
}
}, Cesium.ScreenSpaceEventType.MOUSE_MOVE);
}
欢迎补充,一起进步。