首页 > 其他分享 >cesium.js入门基础教程四(事件)

cesium.js入门基础教程四(事件)

时间:2023-12-18 09:44:52浏览次数:29  
标签:鼠标 js 键盘 Cesium 处理器 基础教程 类型 cesium 事件

事件简介

Cesium中大的事件按照类型进行分类,可以分为如下几种:

  • 鼠标键盘事件
  • 相机事件
  • 数据加载事件
  • 场景加载事件

 

按照事件的使用方式进行分类,可以分为如下两种:

  • 创建事件处理器Handler并指定事件触发类型定义事件,如与鼠标键盘事件相关的屏幕空间事件处理器ScreenSpaceEventHandler
  • Cesium中已经定义好事件回调,只需要添加事件监听的回调函数即可。如监听3D Tiles的瓦片全部加载完毕的回调函数 allTilesLoaded

鼠标键盘事件

要定义鼠标键盘事件,首先要创建一个屏幕空间处理器ScreenSpaceEventHandler,该方法需要传入一个HTMLCanvasElement用于指定事件处理器应用在哪个Canvas元素上,一般情况下指定为viewer.scene.canvas,创建一个事件处理器的完整代码如下:

const handler = new Cesium.ScreenSpaceEventHandler(viewer,scene.canvas);

这样就成功创建了一个事件处理器,接下来就要使用事件处理器上的setInputAction方法来定义事件触发的类型和执行事件触发的回调函数。

其中鼠标的事件类型叫做 “屏幕空间事件类型ScreenSpaceEventType”,键盘的事件类型叫做 “键盘事件修饰符KeyboardEventModifier

 

屏幕空间事件类型 ScreenSpaceEventType

因为Cesium的操作分为鼠标操作和触屏操作两种模式,所以屏幕空间事件类型ScreenSpaceEventType分为两类:

1.鼠标操作
事件名称 类型 描述
LEFT_DOWN aplpha 1.0

标签:鼠标,js,键盘,Cesium,处理器,基础教程,类型,cesium,事件
From: https://www.cnblogs.com/sunyan97/p/17910343.html

相关文章

  • json.load()和json.loads()
    在Python中,json.load和json.loads 分别用于从文件对象和字符串中加载JSON数据,但它们之间有一些重要的区别:1.输入类型: json.load:接受一个已经打开的文件对象作为参数,从文件中读取JSON数据。 json.loads:接受一个包含JSON数据的字符串作为参数,从字符串中加载JSON数据。2......
  • js动态加载
    <scripttype="text/javascript">//动态加载js(顺序执行js)functionloadScript(url,callback){varscript=document.createElement("script")script.type="text/javascript";if(script.readyState){//IE......
  • 使用JS和C#完成websocket双向通讯
    写在前面:微软官方对websocket的直接支持很差,教程也写得不用心。还要用户自己去转字节数组和字符串,太过分了!毕竟主推SignalR。本文是在官方教程的基础上,对其进行了一些简单的讲解,和方法提取、封装,以期降低学习难度。步骤描述:1、随便建了个普通的mvc项目(任意带控制器的.net项......
  • js实现以鼠标为中心缩放图片
    直接上代码,不解释<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>Document</tit......
  • Threejs利用着色器编写动态飞线特效
    一、导语动态飞线特效是可视化数据地图中常见的需求之一,鼠标点击的区块作为终点,从其他区块飞线至点击区块,附带颜色变换或者结合粒子动画二、分析利用创建3点来构成贝塞尔曲线,形成线段利用着色器材质来按照线段以及时间点变化来变化线段的颜色形成动画三、上基础代码//贝塞尔曲线......
  • Threejs漫天多彩粒子天空--粒子系统打造
    一、导语漫天多彩粒子天空特效应该也是Threejs项目中挺常见的一个需求,因为它是基于粒子系统,可以衍生出许多的不一样的方案,比如,星空特效,下雨特效,飘雪特效等等,不仅可以用在项目中增加氛围,有时候可以结合gis业务去使用二、分析利用Points粒子特效去实现多个物体的生成使用贴图去给粒子......
  • 使用JS和SignalR完成双向通信
    写在前面:看官网介绍,听开发者朋友的感受,SignalR对websocket等多个长连接协议进行了封装,提供了多种方法,能够适应很多场合和复杂情况。单纯论简单的web长连接,它确实没有js/nodejs版的websocket直观、简单。微软的风格,一来就高大上,不知道又会劝退多少人,会不会把自己玩死。我帮你简单......
  • 使用js和nodejs完成websocket双向通讯
    如题。感谢AI。先用js完成一个最简单的例子。web端:html:<!DOCTYPEhtml><html><head><metacharset="utf-8"><title></title><scriptsrc="j1.js"></script></head>......
  • 使用JS脚本修改页面内容
    在学习RPA时,我对使用JS脚本修改页面内容进行了深入学习。记录如下:获取元素的方法:1.document.getElementById("xxx")2.document.getElementsByClassName("xxx")3.document.getElementsByTagName("xxx")4.document.getElementsByName("xxx")5.document.querySele......
  • 第三章:SpringBoot集成jsp、mybatis的逆向工程和集成
    一、springboot继承jsp二、mybatis逆向工程三、集成mybatis四、案例-集成mybatis五、集成mybatis总结......