【Cesium】Cesium之Event事件

166 阅读1分钟

1.使用ScreenSpaceEventHandler实现

const handler = new Cesium.ScreenSpaceEventHandler(
    this.viewer.scene.canvas
);
const leftclick = Cesium.ScreenSpaceEventType.LEFT_CLICK;
this.viewer.screenSpaceEventHandler.removeInputAction(leftclick);
handler.setInputAction((event) => {
    const pick = this.viewer.scene.pick(event.position);
    if (Cesium.defined(pick)) {
        if (pick.id._name === "1") {
            console.log("1", 1)
        } else {
            console.log("2", 2)
        }
    }
}, leftclick);

2.使用selectedEntity属性实现

this.viewer.selectedEntityChanged.addEventListener((selectedEntity) => {
    console.log("selectedEntity", selectedEntity)
});

3.如何获取点击的对象信息

//=>初始化视图
initCesium() {
    Cesium.Ion.defaultAccessToken = "";
    this.viewer = new Cesium.Viewer("cesiumContainer", {});
    this.tileset = new Cesium.Cesium3DTileset({});
    //=>3dtile加载完成后执行
    this.tileset.readyPromise.then((tileset) => {
        this.viewer.scene.primitives.add(tileset);
        this.viewer.zoomTo(tileset);

        // this.entity.selected = true;
        this.viewer.selectedEntityChanged.addEventListener((selectedEntity) => {
          //=>获取实体信息
          console.log("selectedEntity", selectedEntity._description._value,)
        });
      });
},
//=>创建实体
addEntities() {
    this.entitieList.forEach((item) => {
        this.viewer.entities.add({
            //=>位置
            position: Cesium.Cartesian3.fromDegrees(),
            //=>广告牌
            billboard: {},
            //=>描述信息
           description: item,
       });
    })
},

3.文档