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点击事件的监听
版权声明:本文标题:Cesium场景内Enitity点击事件的监听 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1732351881h1533312.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论