与entity物体的交互
在cesium中有一个非常好用的封装包可以接收用户在entity物体上的点击.
// 创建一个屏幕空间事件处理器,用于处理屏幕上的事件,这里绑定的是viewer的scene的canvas
var handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);// 设置输入动作,当用户进行左键点击时触发
handler.setInputAction(function(movement){// 打印出鼠标移动事件的相关信息,包含鼠标点击位置等console.log(movement);// 根据鼠标点击的位置,在场景中拾取对象var pickedObject = viewer.scene.pick(movement.position);// 如果拾取到了对象if(Cesium.defined(pickedObject)){// 打印出拾取到的对象的idconsole.log(pickedObject.id);}
},Cesium.ScreenSpaceEventType.LEFT_CLICK);// 设置相机的视图,使其查看viewer中的所有实体
viewer.camera.setView(viewer.entities);
保存运行后我们在先前创建的物体上点击
随后我们就能在控制台获取到我们点击位置的坐标