cesium关于entity的点击、鼠标移动事件

最近遇到一个事情,就是在entity上做点击事件、鼠标移过事件的监听。首先第一反应是看entity的api,是否有关于这些事件的监听,看了entity的api,只有entity的属性、方法,并没有事件监听的接口。

接着就想起来ScreenSpaceEventType这个接口,这个接口有关于事件的监听,可是如何将这些和entity关联起来呢?

这个事件是关于scene的,到scene的帮助文档看看,结果真的有发现

通过这个方法可以获取到要素,那就可以得到id,一切就解决了,代码如下

		viewer.entities.add({
            id:'obj_id_110',
            position:Cesium.Cartesian3.fromDegrees(117 , 36 ,50),
            name:'Red ellipse on surface with outline',
            billboard:{
				image: "./images/location4.png",
				width:30,
				height:40,
			}
        });
		var scene = viewer.scene;
 
        var handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);
        handler.setInputAction(function(movement) {
            var pick = viewer.scene.pick(movement.position);
            if(Cesium.defined(pick) && (pick.id.id === 'obj_id_110')) {
                console.log("left click");
            }
        },Cesium.ScreenSpaceEventType.LEFT_CLICK);
		
		// 鼠标移入labelEntity提示框
		handler.setInputAction(function(movement) {

			var foundPosition = false;

			if (scene.mode !== Cesium.SceneMode.MORPHING) {
				var pickedObject = scene.pick(movement.endPosition);
				if(Cesium.defined(pickedObject) && (pickedObject.id.id === 'obj_id_110')) {
					console.log("mouse move");
				}
			}
		}, Cesium.ScreenSpaceEventType.MOUSE_MOVE);

效果如下所示

  • 7
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值