首页 / 浏览问题 / 三维GIS / 问题详情
pickEvent事件失效
1EXP 2023年11月17日

在图层切换直接导致pickEvent事件失效:
 

// 监听camera倾斜角度

window.viewer.scene.camera.changed.addEventListener(() => {

  const pitch = window.viewer.camera.pitch;

  console.log(pitch);

  const gridLayer = window.viewer.scene.layers.find("xxxx");

  const buildLayer = window.viewer.scene.layers.find("xxxxx");

  if (pitch > -1.2) {

    // 三维

    // 隐藏二维网格图层

    if (gridLayer) {

      gridLayer.visible = false;

    }

    // 加载三维建筑图层

    if (buildLayer) {

      buildLayer.visible = true;

    }

  } else {

    // 二维

    // 隐藏三维建筑图层

    if (buildLayer) {

      buildLayer.visible = false;

    }

    // 加载二维网格图层

    if (gridLayer) {

      gridLayer.visible = true;

    }

  }

});

//注册鼠标点击事件

window.viewer.pickEvent.addEventListener((feature) => {

  console.log(feature);

}, "我是监听事件");

1个回答

您好,

因为您这边没有提供相关代码

建议您根据自己的代码参考http://ask.supermap.com/82962 http://ask.supermap.com/36868

这两种情况

4,151EXP 2023年11月17日
您好,我这边调试发现,是layer设置visible为false,然后在某一场景设置visible为true后pickEvent事件失效,请问这种有遇到过吗,怎么解决

pickEvent是视图内,点击点的屏幕坐标对应的场景坐标所选中的对象的属性。

请检查是否符合条件

另外,如果不用了,请移除

//移除点击事件
viewer.pickEvent.removeEventListener(function(feature));
...