You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否通过HTML元素(如按钮)选中Cesium Viewer内的Cesium实体?

可以通过HTML元素选中Cesium实体

当然可以通过HTML按钮这类元素选中Cesium Viewer上的实体,完全不用局限于Viewer自带的交互操作。

实现思路

核心是利用Cesium提供的selectedEntity或selectedEntities API,手动将目标实体设置为选中状态,和Viewer原生选中逻辑完全一致。

代码示例

  1. 先创建一个测试实体
const viewer = new Cesium.Viewer('cesiumContainer');
// 创建目标实体
const testEntity = viewer.entities.add({
    position: Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883),
    point: {
        pixelSize: 12,
        color: Cesium.Color.RED
    },
    name: '测试标记点'
});
  1. 添加HTML按钮并绑定点击事件
<button id="selectBtn">选中测试实体</button>
<button id="deselectBtn">取消选中</button>
// 选中实体
document.getElementById('selectBtn').addEventListener('click', () => {
    viewer.selectedEntity = testEntity;
    // 可选:自动将视角聚焦到实体
    viewer.zoomTo(testEntity);
});

// 取消选中
document.getElementById('deselectBtn').addEventListener('click', () => {
    viewer.selectedEntity = undefined;
});

多选场景处理

如果需要选中多个实体,使用selectedEntities集合:

// 添加选中项
viewer.selectedEntities.add(testEntity);
// 移除单个选中项
viewer.selectedEntities.remove(testEntity);
// 清空所有选中
viewer.selectedEntities.removeAll();

选中后,Cesium会自动应用默认的选中样式(比如实体高亮、信息框弹出,只要你开启了对应功能),效果和直接点击Viewer中的实体完全一致。

内容的提问来源于stack exchange,提问作者user15180012

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 13:45:30