首页 / 浏览问题 / 三维 / 问题详情
独立事件监听,scene.pick失效
6月16日, 2021
let handler = new Cesium.ScreenSpaceEventHandler(scene.canvas);
let handler2 = new Cesium.ScreenSpaceEventHandler(scene.canvas);
handler.setInputAction(function (movement) {
  let mousePosition = movement.position;
  let pickedObjects = scene.drillPick(mousePosition);
}, Cesium.ScreenSpaceEventType.LEFT_CLICK);
handler2.setInputAction(function (movement) {
  let mousePosition = movement.position;
   //后绑定的,如果使用pick就拿不到任何信息,如果使用和handler中一样的drillPick()就可以拿到对象
  let pickedObjects = scene.pick(mousePosition);
}, Cesium.ScreenSpaceEventType.LEFT_CLICK);

请问这是为什么?

我使用的是最新版本的supermap webgl

1个回答

您好,我看了一下原生Cesium也是这样,不太明白为什么要写两个left_click事件,一个不行吗?
卷饼先生  (6,037分)  登峰造极
6月17日, 2021
1、请问你用的原生Cesium版本是多少?我用1.81就不存在我描述的这个问题

2、把所有left_click事件放到一个处理回调中,当然可以。

只是如果supermap要求必须这样做,请说明!

不是2个left_click事件,而是2个独立的事件监听

我觉得写2个事件监听,没到让人不可思议的地步吧。
用原生1.67的试下,目前WebGL使用的是Cesium1.67,如果没有问题的话请提供完整demo
已提供所有相关代码,你写demo验证了吗?

已验证。      

...