点击事件

    let handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);// 左键点击事件let leftclick = Cesium.ScreenSpaceEventType.LEFT_CLICK;viewer.screenSpaceEventHandler.removeInputAction(leftclick);handler.setInputAction((e) => {let pickObj = viewer.scene.pick(e.position);if (Cesium.defined(pickObj)) {if(pickObj.id && pickObj.id instanceof Cesium.Entity){//点击entity//properties: 实体自定义属性/*properties: new Cesium.PropertyBag({type: "point",details: {}})*/if(pickObj.id.properties._type._value === 'point'){//当前实体的类型  //当前实体的属性信息let trafficObj = pickObj.id.properties._details._value; //参数传递,实体相关操作  }}if (pickObj.primitive instanceof Cesium.Primitive) {//点击primitive//primitive相关操作}if (pickObj.primitive instanceof Cesium.Model) {//点击gltf/glb模型//模型gltf/glb相关操作}if (pickObj instanceof Cesium.Cesium3DTileFeature) {//点击3DTile//3dTiles的子模型属性let propertyNames = pickObj.getPropertyNames();propertyNames.forEach(item=>{console.log(item); //属性名console.log(pickObj.getProperty(item));//属性值})}if (pickObj.getProperty && pickObj.getProperty("name")) {//点击3DTile//pickObj.getProperty("name"): 子模型名称//模型相关操作}if (e && e.stopPropagation) {e.stopPropagation()} else {e.cancelBubble = true}return} }, leftclick)//右键点击事件let rightclick = Cesium.ScreenSpaceEventType.RIGHT_CLICK;handler.removeInputAction(rightclick);handler.setInputAction((e) => {// 从笛卡尔坐标获取经纬度let position = viewer.scene.pickPosition(e.position);let cartographicNew = Cesium.Cartographic.fromCartesian(position);let longitude = Cesium.Math.toDegrees(cartographicNew.longitude);let latitude = Cesium.Math.toDegrees(cartographicNew.latitude);let height = cartographicNew.height;console.log(longitude, latitude, height);// 获取视角let po = viewer.camera.positionWC;let heading = viewer.camera.heading;let roll = viewer.camera.roll;let pitch = viewer.camera.pitch;let data = JSON.stringify({destination: po,orientation: {pitch: pitch, heading: heading, roll: roll},});console.log(data);}, rightclick)

鼠标事件

 let mouseMove = Cesium.ScreenSpaceEventType.MOUSE_MOVE;let viewer = getViewer();viewer.screenSpaceEventHandler.removeInputAction(mouseMove);let handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);handler.setInputAction((e) => {let fea = viewer.scene.pick(e.endPosition);if (fea) {if (fea.id || fea.primitive) {// 鼠标移入实体或模型_self.$refs.map3d.style.cursor = "pointer";}if (fea.getProperty && fea.getProperty("name")) {// 鼠标移入子模型_self.$refs.map3d.style.cursor = "pointer";//模型高亮等操作...}} else {_self.$refs.map3d.style.cursor = "default";}}, mouseMove);

相机移动事件

 let viewer = getViewer();let flag = false;//防止重复调用viewer.scene.camera.changed.addEventListener(function () {//获取当前相机高度let height = Math.ceil(viewer.camera.positionCartographic.height);if (height > 100000) {if(flag){return}flag = true;//设置地图环境光,调整地图颜色等操作//... } else {if(!flag){return}flag = false;//设置地图环境光,调整地图颜色等操作//... }})

Cesium常用事件,包括点击事件,鼠标事件,相机移动事件相关推荐

  1. 史上最全的常用事件:移动端事件及PC端:鼠标/键盘/表单事件

    PC端事件 鼠标事件: onclick点击 onmouseover鼠标移入 onmouseout鼠标移出 onmousedown鼠标按下 onmouseup鼠标抬起 onmousemove鼠标移动 o ...

  2. layui使用tips_使用layer.tips实现鼠标悬浮时触发事件提示消息实现

    代码: 你瞅啥!?过来试试! 方法一: function show(id) { layer.tips("左边么么哒", "#"+id+"", ...

  3. js常用对象:点击、双击、onload事件、鼠标相关、onblur事件和onfocus事件等;通过循环给多个元素添加事件、通过addEventListener() 方法 监听事件函数...

    1.通过标签内部添加事件 (1)onclick事件:单击事件 (2)ondbclick事件:双击事件 (3)onload事件:只能在body中使用,入口函数里有:window.   .οnlοad=f ...

  4. 773-780---DOM事件高级(常用鼠标事件,案例:跟随鼠标的天使,常用的键盘事件,案例:模拟京东按键输入内容,案例:模拟京东快递单号查询)

    文章目录 事件高级 7 常用的鼠标事件 7.1常用的鼠标事件 7.2 鼠标事件对象 案例:跟随鼠标的天使 8 常用的键盘事件 8.1 常用的键盘事件 8.2 键盘事件对象 8.3 ASCII 表 案例 ...

  5. Day9、ListView常用事件、点击按钮和点击每行的背景转换器Selector

    在我们身边常用的APP中,我们点击按钮或者一行图文混搭文字,怎样感知我们点击上了,最明显的就是出现页面跳转或者出现下拉菜单,然而细心的人会发现,除此之外还会出现图片背景颜色的瞬变,对的,假如没有这项变 ...

  6. vue判断是否双击_vue双击事件2.0事件监听(点击-双击-鼠标事件)和事件修饰符操作...

    Vue 事件处理方法 可以用 v-on 指令监听 DOM 事件,并在触发时运行一些 JavaScript 代码. v-on:click 单击事件 + + - - v-on:dblclick 双击事件 ...

  7. PyQt5 鼠标点击事件(点击响应事件可自定义):鼠标单击、双击、滚轮滚动、释放、移动等

    自己写通了最常用的鼠标事件,具体响应事件,大家可以自定义,实现的效果如下: 具体代码如下,有任何问题,欢迎小伙伴们交流讨论. # -*- coding: utf-8 -*- ""& ...

  8. python 捕获鼠标点击事件_Python捕捉和模拟鼠标事件的方法

    本文实例讲述了Python捕捉和模拟鼠标事件的方法.分享给大家供大家参考.具体分析如下: 这个假期玩了不少galgame,不过有些很老的游戏没有自动运行模式,点击鼠标又太伤按键了,于是想把滚动鼠标滚轮 ...

  9. threejs给模型绑定点击或者鼠标移入事件,兼容mobile和pc

    //投影获取点击或鼠标移入的模型 var raycaster = new THREE.Raycaster() var mouse = new THREE.Vector2() function find ...

最新文章

  1. AlphaGo的制胜秘诀:蒙特卡洛树搜索初学者指南
  2. Postgres多版本控制
  3. mac操作系统自带的文本编辑软件
  4. 你值得拥有:25个Linux性能监控工具
  5. 什么原因可能导致主备延迟?
  6. why always SAP WebContent is added as prefix of url when repository request ser
  7. tecplot批量导出图片_批量导出Excel图片,用这招,半分钟干的活别人一整天完不成...
  8. 【Python】一些容易忽略的知识点
  9. 套接字TCP控制台程序客户端代码示范
  10. Python有多火,来看一份24小时榜单,从入门到进阶,赶紧收藏!
  11. Linux 初始化之 Systemd机制简介
  12. [零基础学JAVA]Java SE面向对象部分-17.面向对象高级(05)
  13. Signal 通过区块链慈善组织 The Giving Block 接受加密货币货币捐赠
  14. ajax、axios、fetch之间的详细区别以及优缺点
  15. 慢系统调用 与 信号
  16. NLP 推荐算法 论文+博客整理
  17. Android3D相册项目,Android Gallery实现3D相册(附效果图+Demo源码)
  18. centos7 ies4linux,Ubuntu 7.10中通过IEs4linux安装IE6
  19. 耳机常用降噪技术分析
  20. cpu之RegDst_Ins

热门文章

  1. 设计一个智能客服系统
  2. vue-seamless-scroll表格无缝滚动
  3. 深度学习框架【MxNet】的安装
  4. 高斯消元法的MATLAB代码
  5. Unity基础知识汇总
  6. 关于github的license选择
  7. 编译内核出错:/bin/sh: 1: bison: not found scripts/Makefile.lib:196: recipe for target ‘scripts/kconfig/zco
  8. 个人永久性免费-Excel催化剂功能第95波-地图数据挖宝之IP地址转地理地址及不同经纬度版本转换...
  9. mac系统docker发布镜像报错:错误the user name or passphrase you entered is not correct解决
  10. 高地址和低地址、高字节低字节、大小端模式(及如何互换),存储顺序(!!)