Cesium 给点添加单击事件

遇到的问题:
使用Cesium.PointPrimitiveCollection 添加的点怎么给每一个点添加单击事件的?

let pointPrimitives = _this.viewer.scene.primitives.add(new Cesium.PointPrimitiveCollection())
      let data = [
        {x: 120.296589, y: 30.263504},
        {x: 120.296589, y: 30.261984},
        {x: 120.296589, y: 30.259051},
        {x: 120.296589, y: 30.257086},
        {x: 120.296589, y: 30.254216},
        {x: 120.296589, y: 30.250878},
        {x: 120.296589, y: 30.24988},
        {x: 120.296589, y: 30.248819},
        {x: 120.296589, y: 30.247883},
        {x: 120.296589, y: 30.245855},
        {x: 120.296589, y: 30.244311},
        {x: 120.296589, y: 30.241345},
        {x: 120.296589, y: 30.239943},
        {x: 120.296589, y: 30.238445},
        {x: 120.296589, y: 30.236745}
      ]
      data.map(item => {
        let position = Cesium.Cartesian3.fromDegrees(item.x, item.y, 0) // 这里的 50 是高度
        pointPrimitives.add({
          pixelSize: 4,
          color: Cesium.Color.RED,
          outlineColor: Cesium.Color.RED,
          outlineWidth: 0,
          position: position
        })
      })

在这里插入图片描述
解决方法:
如果有同样问题的 可以使用这种方法:

`const handler = new this.cesium.ScreenSpaceEventHandler(viewer.scene.canvas)

handler.setInputAction(function (click) {
    var pick = viewer.scene.pick(click.position)
    console.log(pick)
    if (pick && pick.id) {
      if (pick.id._id === 'billboard') {
        if (_this.modelViewerShow === true) {
          _this.getModel()
          _this.modelViewerShow = false
          _this.$('.adsk-viewing-viewer').show()
          _this.$('#GISviewer').hide()
        }
      } else {
        console.log(pick.id)
      }
    }
  }, _this.cesium.ScreenSpaceEventType.LEFT_CLICK)`

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值