Cesium 显示实时鼠标位置和视角信息

news2024/12/28 3:46:22

在这里插入图片描述
根据鼠标移动的位置计算鼠标所在位置的经纬度
监听视角变化情况显示视高、方位角、俯仰角
监测底图切片等级来显示当前地图缩放等级

 showMapData() {
      let _this = this
      let handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas)
      handler.setInputAction(function (movement) {
        let pick = new Cesium.Cartesian2(
          movement.endPosition.x,
          movement.endPosition.y
        )
        if (pick) {
          let cartesian = viewer.scene.globe.pick(
            viewer.camera.getPickRay(pick),
            viewer.scene
          )
          if (cartesian) {
            let cartographic =
              viewer.scene.globe.ellipsoid.cartesianToCartographic(cartesian)
            if (cartographic) {
              let lontitude = Cesium.Math.toDegrees(
                cartographic.longitude
              ).toFixed(6)
              let latitude = Cesium.Math.toDegrees(
                cartographic.latitude
              ).toFixed(6)
              _this.lontitudeData = lontitude
              _this.latitudeData = latitude
              //  如果加了地形可以用这个去计算海拔
              //  let baseHeight = viewer.scene.sampleHeight(
              //   new Cesium.Cartographic(
              //     Cesium.Math.toRadians(cartographic.longitude), //转换成弧度
              //     Cesium.Math.toRadians(cartographic.latitude) //弧度
              //   )
              // );
              let h = viewer.scene.globe.getHeight(cartographic) //获取当前海拔高度
              h = h !== null && h !== undefined ? h.toFixed(0) : ""
              _this.baseHeight = h
            }
          }
        }
      }, Cesium.ScreenSpaceEventType.MOUSE_MOVE)
      viewer.camera.changed.addEventListener(() => {
        let heading = Cesium.Math.toDegrees(viewer.camera.heading).toFixed(2)
        let pitch = Cesium.Math.toDegrees(viewer.camera.pitch).toFixed(2)
        let viewHeight = viewer.camera.positionCartographic.height.toFixed(2)
        _this.headingData = heading
        _this.pitchData = pitch
        _this.viewHeight = viewHeight
        let tileRender = viewer.scene.globe._surface._tilesToRender
        if (tileRender && tileRender.length > 0) {
          this.mapLevelData = tileRender[0]._level
        }
      })
    },

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1520758.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Soft Robotics 变结构手掌和变刚度手指的仿人软体手的人机交互操作-武科大ESIR课题组师兄成果

一、引言 在当今的机器人技术领域,人类对机器人的需求日益增长,涉及到工业生产、医疗护理、服务业等各个领域。然而,由于任务的多样性和复杂性,单独依靠自主机器人操作往往难以满足实际需求。为了解决这一问题,人机协作…

软件设计和体系结构

软件设计和体系结构 一、引言 软件 定义:一系列按照特定顺序组织的计算机数据、指令的集合 特点: 软件不是生产制造,是设计开发软件不会磨损和老化软件需要根据实际情况进行定制开发 软件设计的基本原则 抽象方法 过程抽象:是指…

【物联网】Modbus 协议及Qinghub物联网平台应用

Modbus 协议简介 QingHub设计器在设计物联网数据采集时不可避免的需要针对Modbus协议的设备做相关数据采集,这里就我们的实际项目经验分享Modbus协议 你可以通过QingHub作业直接体验试用,也可以根据手册开发相应的代码块。 qinghub项目已经全面开源。 …

从 VNCTF2024 的一道题学习QEMU Escape

说在前面 本文的草稿是边打边学边写出来的,文章思路会与一个“刚打完用户态 pwn 题就去打 QEMU Escape ”的人的思路相似,在分析结束以后我又在部分比较模糊的地方加入了一些补充,因此阅读起来可能会相对轻松。(当然也不排除这是…

数据结构知识点总结00-知识点目录

专栏主页: 数据结构算法程序设计基础C语言知识点总结https://blog.csdn.net/seeker1994/category_12585732.html C语言知识点总结00-C语言知识点目录 最优算法100例00-最优算法100例目录 ...... 数据结构知识点目录 要求: (1&#xff…

什么蓝牙耳机最好?2024年五大优质品牌机型,真实评测助你决策

​随着科技的进步,无线蓝牙耳机已经取代了传统的有线耳机,成为新的趋势。尽管无线蓝牙耳机种类繁多,挑选合适的款式并不容易。我整理了几款表现不错的蓝牙耳机,希望这篇文章能帮助你找到适合自己的真无线蓝牙耳机。 一、挑选蓝牙耳…

C语言中,可以在子函数中动态申请一个指向二维数组的内存给调用函数使用么——看ChatGPT的回答——

下面是ChatGPT的回答&#xff0c;太专业了&#xff0c;比网上查的资料都好很多可能。 是的&#xff0c;可以在子函数中动态申请一个指向二维数组的内存&#xff0c;然后将其传递给调用函数使用。在C语言中&#xff0c;可以通过以下方式实现&#xff1a; #include <stdio.h…

英国伦敦交易所股票清单列表数据API接口

# Restful API https://tsanghi.com/api/fin/stock/XLON/list?token{token}更新时间&#xff1a;收盘后3~4小时。 更新周期&#xff1a;每天。 请求方式&#xff1a;GET。 # 测试&#xff1a;返回不超过10条数据&#xff08;2年历史&#xff09; https://tsanghi.com/api/fin/…

IO Watch:用 Arduino UNO 制造的可编程手表

MAKER:mblaz/译:趣无尽 Cherry(转载请注明出处) 关于手表的项目,之前我们已经介绍过一款《Arduino + 3D 打印 DIY 电子手表》。本期的项目同样的一款基于 Arduino UNO 的可编程的手表,相比之下制造门槛更高一些。同时它更成熟、实用,外形也很有设计感,非常的漂亮! 这…

TEAM标签管理体系是什么?如何进行数据权益的保护?

TEAM标签管理体系是什么&#xff1f;如何进行数据权益的保护&#xff1f; 导读一、数据权益保护的难点及解决思路二、数据权益保护的“TEAM”管理体系1、Tagging&#xff08;打标&#xff09;&#xff1a;为数据资源提供全生命周期跟踪保护2、Ensuring&#xff08;保障&#xf…

将复数的实部和虚部或数值的符号都取反operator.neg(num)

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 将复数的实部和虚部 或数值的符号都取反 operator.neg(num) [太阳]选择题 关于operator.neg()的功能说法正确的是&#xff1f; import operator print("【执行】operator.neg(34j)"…

无硫防静电手指套:高科技产业的纯净与安全新选择

随着科技的飞速发展&#xff0c;高科技产业对于生产环境的纯净度和产品的防静电要求日益严格。为了满足这一高标准的需求&#xff0c;无硫防静电手指套应运而生&#xff0c;以其独特的无硫特性和出色的防静电功能&#xff0c;迅速成为了高科技产业中的纯净与安全新选择。 无硫手…

react中JSX的详解

目录 JSX的本质及其与JavaScript的关系探究 一、JSX的本质 二、JSX与JavaScript的关系 三、为什么要使用JSX 四、不使用JSX的后果 五、JSX背后的功能模块 JSX的本质及其与JavaScript的关系探究 在React开发中&#xff0c;JSX是一个不可或缺的部分。那么&#xff0c;JSX的…

C++:函数传参到函数执行结束发生了什么

首先要明确两个概念 函数实参的入栈从右向左栈区从高地址向低地址偏移 接下来看下面一段代码 void fun(int a,int b,int c){std::cout<<&a<<" "<<&b<<" "<<&c<<std::endl; } int main(){fun(1,2,3); }…

最全集装箱知识汇总详解!

1、大柜、小柜、双背是指&#xff1f; 集装箱有不同的尺寸和搭配方式&#xff0c;大柜、小柜、双背就是其中的一些常见的分类。具体来说&#xff1a; 大柜是指长度为40英尺的集装箱&#xff0c;一般有40GP和40HQ两种类型。45英尺的集装箱比较特殊&#xff0c;不算大柜。 小柜…

10.用AI解释AI

文章目录 用AI解释AI目的思路成功解释实例失败例子 评估解释结果结果分析方法小结整体评估缺点与改进其他槽点 部分截图来自原课程视频《2023李宏毅最新生成式AI教程》&#xff0c;B站自行搜索。 用AI解释AI来自openAI的论文&#xff1a; Language models can explainneurons …

凝思操作系统离线安装mysql和node

PS&#xff1a;下面这就是国产凝思的界面,测试版本是V6.0.80&#xff0c;第一次听说这种系统&#xff0c;于是去官网下载部署包&#xff0c;下面是地址 注意:这个系统如果没有激活&#xff0c;ip都不会有&#xff0c;这样文件都不能传到服务器&#xff0c;xshell这些工具都连不…

java-ssm-jsp基于java的信访管理系统的设计与实现

java-ssm-jsp基于java的信访管理系统的设计与实现 获取源码——》公主号&#xff1a;计算机专业毕设大全 获取源码——》公主号&#xff1a;计算机专业毕设大全

双线性插值缩放算法原理以及matlab与verilog的实现(二)

系列文章目录 双线性插值缩放算法原理以及matlab与verilog的实现&#xff08;一&#xff09; 文章目录 系列文章目录前言一、前提回顾二、FPGA实现步骤2.1 找到源图像四个像素点求目标像素点2.2 FPGA实现步骤2.3 总体框架2.4 ROM缓存模块2.5 VGA模块2.6 双线性算法模块 三、下…

《Learning Hierarchical Modular Networks for Video Captioning》论文笔记

论文信息 原文链接&#xff1a; Learning Hierarchical Modular Networks for Video Captioning | IEEE Journals & Magazine | IEEE Xplore 原文代码 GitHub - MarcusNerva/HMN: [CVPR2022] Official code for Hierarchical Modular Network for Video Captioning. Ou…