cesium在vue框架中 鼠标移入entity显示其label信息提示框 移出提示框消失
时间: 2023-02-06 14:08:42 浏览: 157
可以使用 Cesium 的 `Label` 类来在鼠标移入 entity 时显示其标签信息提示框,并在鼠标移出时消失。
首先,在 vue 组件中引入 Cesium,然后在 mounted 钩子函数中创建一个 Cesium 地图实例:
```
import * as Cesium from 'cesium';
export default {
mounted() {
this.viewer = new Cesium.Viewer('cesiumContainer', {
// 设置地图相关配置
});
},
};
```
接着,在 data 中定义一个变量 `label`,用于保存标签信息提示框:
```
export default {
data() {
return {
label: null,
};
},
};
```
然后,在组件的 methods 中,定义鼠标移入和移出 entity 的事件处理函数:
```
export default {
methods: {
showLabel(entity) {
// 创建标签信息提示框
this.label = this.viewer.entities.add({
label: {
text: entity.label,
font: '14pt monospace',
style: Cesium.LabelStyle.FILL_AND_OUTLINE,
outlineWidth: 2,
verticalOrigin: Cesium.VerticalOrigin.BOTTOM,
pixelOffset: new Cesium.Cartesian2(0, -10),
},
});
},
hideLabel() {
// 移除标签信息提示框
this.viewer.entities.remove(this.label);
this.label = null;
},
},
};
```
最后,为 entity 添加鼠标移入和移出事件监听器,在事件处理函数中调用 showLabel 和 hideLabel 即可:
```
export default {
mounted() {
// 创建 entity
const entity = this.viewer.entities.add({
// 设置 entity 相关属性
});
阅读全文