Cesium:修改点击显示的infoBox内容

通过设置修改显示内容方案

方案:通过设置entity.description修改显示内容

let entity = {
  name: "video",
  position: Cesium.Cartesian3.fromDegrees(116.20, 39.59),
  label: { //文字标签
    text: "文字标签",
    font: '500 30px Helvetica',// 15pt monospace
    scale: 0.5,
    style: Cesium.LabelStyle.FILL,
    fillColor: Cesium.Color.WHITE,
    pixelOffset: new Cesium.Cartesian2(-8, -35),   //偏移量
    showBackground: true,
    backgroundColor: new Cesium.Color(0.5, 0.6, 1, 1.0)
  },
  billboard: { //图标
    image: this.circle,
    width: 50,
    height: 50,

  },
  distanceDisplayCondition: new Cesium.DistanceDisplayCondition(0, 1000),
};
entity.description = '<div style="height: 360px;">' + '重写infoBox' + '</div>';
this.viewer.entities.add(entity);

在这里插入图片描述

### Cesium 中去除白膜效果并实现在点击显示弹窗 在 Cesium 应用程序中,可以通过调整场景设置来移除默认的白色背景(即所谓的“白膜”),并通过监听事件实现点击对象时显示弹窗的功能。 #### 移除白膜效果 为了改变或消除 Cesium 场景中的白色背景,默认情况下可以修改 `scene.backgroundColor` 属性。这允许指定一个自定义的颜色作为背景替代白色的底色: ```javascript viewer.scene.backgroundColor = Cesium.Color.BLACK; ``` 此操作会将整个视图的背景颜色更改为黑色或其他所选颜色[^1]。 对于更加复杂的透明度处理需求,则可能涉及到配置 `skyBox` 或者禁用大气散射效果 (`SkyAtmosphere`) 来达到理想的效果: ```javascript // 关闭天空盒 (如果不需要星空等特效) viewer.scene.skyBox.show = false; // 禁用大气光晕效果 viewer.scene.skyAtmosphere.show = false; ``` 这些更改能够有效减少不必要的视觉干扰,使得模型展示更为清晰突出[^2]。 #### 实现点击弹窗功能 要让特定实体被点击显示出信息窗口,在创建 Entity 的时候应该为其绑定鼠标单击事件处理器,并利用 InfoBox 或 Tooltip 组件呈现相关内容。下面是一个简单的例子说明如何做到这一点: ```javascript var entity = viewer.entities.add({ position : Cesium.Cartesian3.fromDegrees(-75.1641667, 39.9522222), point : { pixelSize : 10, color : Cesium.Color.RED }, }); // 添加点击事件监听器给这个Entity entity._clickHandler = new Cesium.ScreenSpaceEventHandler(viewer.canvas); entity._clickHandler.setInputAction(function(click) { var pickedObject = viewer.scene.pick(click.position); if (Cesium.defined(pickedObject) && pickedObject.id === entity) { // 显示弹窗逻辑 alert('您选择了位置:' + Cesium.Math.toDegrees(entity.position._value.longitude).toFixed(2) + ',' + Cesium.Math.toDegrees(entity.position._value.latitude).toFixed(2)); // 如果想要使用更美观的方式代替alert(), 可以考虑集成第三方UI库如Bootstrap Modal. } }, Cesium.ScreenSpaceEventType.LEFT_CLICK); ``` 上述代码片段展示了当用户左键单击某个已知坐标点时触发的信息提示框。实际项目开发过程中建议采用更具交互性的组件替换掉原始的 JavaScript Alert 对话框,比如通过 HTML/CSS 构建定制化的浮层或者引入前端框架提供的模态对话框解决方案[^3]。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KaiSarH

如果觉得文章不错,可以支持下~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值