admin 管理员组

文章数量: 887007

Cesium场景内Enitity点击事件的监听

Cesium场景内Enitity点击事件的监听

**

Cesium如何监听Enitity的点击事件,在前几篇博客我们已经讲到了如何获取鼠标的点击事件,以及场景的点击获取经纬度,其实Cesium自带的还有个可以获取当前点击的物体的事件,废话少说,上代码:

		var viewer = new Cesium.Viewer('cesiumContainer', {//加载天地图影像地图,WebMapTileServiceImageryProvider该接口是加载WMTS服务的接口imageryProvider: new Cesium.WebMapTileServiceImageryProvider({animation: false, //是否显示动画控件shouldAnimate: true,homeButton: false, //是否显示Home按钮fullscreenButton: false, //是否显示全屏按钮baseLayerPicker: false, //是否显示图层选择控件geocoder: false, //是否显示地名查找控件timeline: false, //是否显示时间线控件sceneModePicker: true, //是否显示投影方式控件navigationHelpButton: false, //是否显示帮助信息控件infoBox: false, //是否显示点击要素之后显示的信息requestRenderMode: true, //启用请求渲染模式scene3DOnly: false, //每个几何实例将只能以3D渲染以节省GPU内存sceneMode: 3, //初始场景模式 1 2D模式 2 2D循环模式 3 3D模式  Cesium.SceneMode//加载谷歌影像地图,UrlTemplateImageryProvider该接口是加载谷歌地图服务的接口url: '=ebf64362215c081f8317203220f133eb',layer: 'img',style: 'default',tileMatrixSetID: 'w',format: 'tiles',maximumLevel: 18})});//定义监控的点位,也可以为后台传输过来的var cameraArras = [{name: "监控1",x: 113.180830883244,y: 27.756677157393,z: 10},{name: "监控2",x: 113.180832598893,y: 27.7578087835959,z: 10},]    //循环添加所有的监控点位for (i = 0; i < cameraArras.length; i++) {viewer.entities.add({id: cameraArras[i].name,position: Cesium.Cartesian3.fromDegrees(cameraArras[i].x, cameraArras[i].y, cameraArras[i].z),billboard: {//这里需要改成您本地的路径的图片信息。image: "../../img/point.png",width: 30,height: 60,},label:{//文字内容text :  cameraArras[i].name,//文字填充颜色fillColor : Cesium.Color.WHITE,//文本大小与字体font:'normal 20px Microsoft YaHei UI',//是否显示背景showBackground : false,//背景墙的颜色backgroundColor:Cesium.Color.fromCssColorString("rgba(52,79,209,1.0)"),//背景宽度backgroundPadding : new Cesium.Cartesian2(3, 3),//文字与背景墙的总大小scale : 0.9,//文本轮廓style: Cesium.LabelStyle.FILL_AND_OUTLINE,//外边界颜色outlineColor : Cesium.Color.BLACK,//外边界宽度outlineWidth : 2,//文本出现的位置verticalOrigin : Cesium.VerticalOrigin.BOTTOM,//文本的偏移方向pixelOffset : new Cesium.Cartesian2(0, -20)}});}//注册场景点击事件var handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);handler.setInputAction(function (e) {var pick = viewer.scene.pick(e.position);if (pick&&pick.id) {//点击物体的属性都存在pick.id内部alert("点击到了:"+pick.id._id);}}, Cesium.ScreenSpaceEventType.LEFT_CLICK);



后续小编会持续更新cesium各种源码,特效以及其他效果或者模型加载的实现方式,还希望大家多多关注,小编也会持续更新的!

声明:转载请声明出处。

本文标签: Cesium场景内Enitity点击事件的监听