cesium实现二三维联动

记录项目中实现二三维地图联动

效果如下:

第一步:现在页面中加载二三维地图(地图的初始化已省略)

<template><div><div><button @click="show">二三维联动</button></div><div><div id="cesiumcontainer3D" @mouseenter="mouseleave3d"></div><div id="cesiumcontainer2D" @mouseenter="mouseleave2d"></div></div></div>
</template><style lang="scss" scoped>
#cesiumcontainer3D {height: calc(100vh - 0px);width: 100%;margin: 0 0 0 0;padding: 0 0 0 0;float: left;
}
#cesiumcontainer2D {height: calc(100vh - 0px);width: 100%;margin: 0 0 0 0;padding: 0 0 0 0;float: right;
}
</style>

第二步:监听实现联动

    mouseleave3d() {window.is3d = true;},mouseleave2d() {window.is3d = false;},setView23D(is2D_show) {// 二维地图事件if (is2D_show == false) {window.removeChanged();map_2D.off("moveend");} else {map_2D.on("moveend", (event) => {if (window.is3d) return;const bounds = map_2D.getBounds();this.viewer.camera.flyTo({destination: Cesium.Rectangle.fromDegrees(bounds._southWest.lng,bounds._southWest.lat,bounds._northEast.lng,bounds._northEast.lat),duration: 0.25,});});// 三维地图事件const fitBounds2d = () => {if (!window.is3d) return;let levelInfo = "级数:0级  ";let tileRender = this.viewer.scene._globe._surface._tilesToRender;if (tileRender && tileRender.length > 0) {levelInfo ="级数:" +this.viewer.scene._globe._surface._tilesToRender[0]._level +"级  ";console.log(levelInfo);}const rectangle = this.viewer.camera.computeViewRectangle();// 弧度转为经纬度const west = (rectangle.west / Math.PI) * 180;const north = (rectangle.north / Math.PI) * 180;const east = (rectangle.east / Math.PI) * 180;const south = (rectangle.south / Math.PI) * 180;map_2D.fitBounds([[south, west],[north, east],]);};window.removeChanged =this.viewer.scene.camera.moveEnd.addEventListener(function () {fitBounds2d();});}},show() {this.is2D_show = !this.is2D_show;this.setView23D(this.is2D_show);if (this.is2D_show) {this.switchMapView("23D");} else {this.switchMapView("3D");}},// 切换地图视图switchMapView(type) {switch (type) {case "3D":document.getElementById("cesiumcontainer3D").style.width = "99.9%";document.getElementById("cesiumcontainer2D").style.width = "0.1%";break;case "23D":document.getElementById("cesiumcontainer3D").style.width = "50%";document.getElementById("cesiumcontainer2D").style.width = "50%";break;}},

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

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

相关文章

Go Web 编程

Go Web 编程 更新于 1年前 一步步带你进入 Go Web 编程的世界,让我们开始探索吧! 文档类型:系统文档 文章统计:96 篇,字数 12.52 万,点赞 508 文章列表所有讨论 基本信息 关于本书 第一章. Go 环境配置 01.0. Go 环境配置 01.1. 安装 Go 01.2. GOPATH 与工作空间 …

经典文献阅读之--RenderOcc(使用2D标签训练多视图3D Occupancy模型)

0. 简介 3D占据预测在机器人感知和自动驾驶领域具有重要的潜力&#xff0c;它将3D场景量化为带有语义标签的网格单元。最近的研究主要利用3D体素空间中的完整占据标签进行监督。然而&#xff0c;昂贵的注释过程和有时模糊的标签严重限制了3D占据模型的可用性和可扩展性。为了解…

[HADOOP]数据倾斜的避免和处理

避免数据倾斜 初始设计方面&#xff1a; 设计阶段考虑数据分布&#xff0c;并尽可能确保数据均匀分布。 预处理数据&#xff1a; 在数据加载到 Hadoop 之前进行预处理&#xff0c;以减少倾斜。使用抽样或统计方法来了解数据分布特征&#xff0c;并据此调整。 使用合适的Partiti…

EtherCAT主站SOEM -- 11 -- EtherCAT从站 XML 文件解析

EtherCAT主站SOEM -- 11 -- EtherCAT从站 XML 文件解析 1 EtherCAT 从站信息规范1.1 XML 文件说明1.1.1 XML 数据类型1.1.2 EtherCATInfo1.1.3 Groups1.1.4 Devices1.1.5 Modules1.1.6 Types1.1.6.1 AccessType 的组成1.1.6.2 ArraylnfoType 的组成1.1.6.3 DeviceType 的组成1.…

Mendelson AS2 介绍下载和配置

最近与一家国外公司做EDI对接&#xff0c;并且EDI通讯工具是基于AS2协议的。目前开源的as2的开源项目有openas2,Mendelson AS2&#xff0c;和国人写的freeas2但是&#xff0c;现在freeas2已经被从开源中国不能下载了&#xff0c;变为收费的版本了。 如果你需要使用基于AS2协议…

动态规划、DFS 和回溯算法:二叉树问题的三种视角

动态规划、DFS 和回溯算法&#xff1a;二叉树问题的三种视角 在计算机科学中&#xff0c;算法是解决问题的核心。特别是对于复杂的问题&#xff0c;不同的算法可以提供不同的解决方案。在本篇博客中&#xff0c;我们将探讨三种算法&#xff1a;动态规划、深度优先搜索&#xf…

掌握常用Docker命令,轻松管理容器化应用

Docker是一个开源的应用容器引擎&#xff0c;它可以让开发者将应用程序及其依赖打包到一个轻量级、可移植的容器中&#xff0c;然后发布到任何流行的Linux机器或Windows机器上&#xff0c;也可以实现虚拟化。容器是完全使用沙箱机制&#xff0c;相互之间不会有任何接口。下面介…

Python基础(九、重要的全局变量)

文章目录 全局变量是什么&#xff1f;引用全局变量修改全局变量注意事项结语 全局变量是什么&#xff1f; 首先&#xff0c;全局变量是在函数外部定义的变量&#xff0c;它可以在程序的任何地方被访问。就好像一家人共用的盘子&#xff0c;随手可以拿来用&#xff0c;但也可能…

智能仓储管理系统设计与实现

智能仓储管理系统设计与实现 第一章 绪论 1.1 设计背景 物联网&#xff08;英文&#xff1a;Internet of Things&#xff0c;缩写&#xff1a;IoT&#xff09;是万物相连的互联网&#xff0c;即把所有物品通过信息传感设备与互联网连接起来&#xff0c;以实现智能化识别、定位、…

【Unity入门】NGUI和UGUI比较

目录 NGUI组件比较多&#xff0c;比较常用的有UGUI组件比较少&#xff0c;比较常用的有NGUI和UGUI比较 现在主流项目中基本上都是NGUI和UGUI&#xff0c;那么到底选哪个&#xff0c;我们先来做个比较 图集处理功能比较 NGUI需要使用工具手动拼接图片成图集。 UGUI开发期间可以直…

Java网络爬虫拼接姓氏,名字并写出到txt文件(实现随机取名)

目录 1.爬取百家姓1.爬取代码2.爬取效果 2.爬取名字1.筛选男生名字2.筛选女生名字 3.数据处理&#xff08;去除重复&#xff09;4.拼接数据5.将数据写出到文件中 1.爬取百家姓 目标网站&#xff0c;仅作为实验目的。 ①爬取姓氏网站&#xff1a; https://hanyu.baidu.com/shic…

小狐狸ChatGPT系统 H5前端底部菜单导航文字修改方法

小狐狸ChatGPT系统后端都前端都是编译过的&#xff0c;需要改动点什么非常难处理&#xff0c;开源版修改后也需要编译后才能使用&#xff0c;大部分会员也不会使用&#xff0c;像简单的修改下底部菜单文字、图标什么的可以对照处理。这里以小狐狸ChatGPT系统1.9.2版本H5端为例&…

JWT signature does not match locally computed signature

1. 问题背景 最近在协助团队小盆友调试一个验签问题&#xff0c;结果还“节外生枝”了&#xff0c;原来不是签名过程的问题&#xff0c;是token的问题。 当你看到“JWT signature does not match locally computed signature. JWT validity cannot be asserted and should not…

多维时序 | MATLAB实CNN-Mutilhead-Attention卷积神经网络融合多头注意力机制多变量时间序列预测

多维时序 | MATLAB实CNN-Mutilhead-Attention卷积神经网络融合多头注意力机制多变量时间序列预测 目录 多维时序 | MATLAB实CNN-Mutilhead-Attention卷积神经网络融合多头注意力机制多变量时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 多维时序 | …

异或运算^简述

异或运算&#xff1a;^ 两个变量之间异或运算时&#xff0c;其二进制位相同取0&#xff0c;不同取1. 示例&#xff1a;a10 (0b 0000 1010) b3 (0b 0000 0011) a^b9(0b 0000 1001) 据此可以推算异或运算"^"有以下特性&#xff1a; a^a0 (0b 0000 0000)…

python使用apscheduler定时任务,固定周几运行程序

在add_job中添加参数day_of_week即可&#xff1a; day_of_week "0"表示&#xff1a;只有周一运行day_of_week "0-4"表示&#xff1a;周一到周五运行day_of_week "0,1,2"表示&#xff1a;周一二三运行 示例程序 from datetime import datet…

IDEA基本设置

本博客适用于纯新手小白&#xff0c;或者刚下载IDEA想要优化开发添加配置的读者。 基础设置 滚轮调整字体大小 打开 IntelliJ IDEA。 转到菜单栏中的 “File” -> “Settings”&#xff08;Windows/Linux&#xff09;或 “IntelliJ IDEA” -> “Preferences”&#xff…

2024年 Kubernetes 四大趋势预测

Kubernetes 在生产环境中的复杂性已经成为常态&#xff0c;在2023年这个平台工程盛行的时代&#xff0c;容器管理的最大亮点可能在于其灵活性&#xff0c;然而在运维政策和治理等方面仍然存在诸多挑战。Kubernetes 最大的吸引力之一在于其可扩展性和跨环境的广泛用例。但是&…

CTF show 71

CTF show 71 在源码中可以看到程序把缓冲区内容全部替换成了问号 ​​ ob_get_contents函数把缓冲区内容读到以后赋值给了变量s&#xff0c;类型是字符串。 ob_end_clean()函数清空当前缓冲区并且关闭缓冲区 ​​ 所以展示的结果中全是问号。所以我们需要在读取到文件以后…

计算机网络基础知识分享

计算机网络基础知识分享 发送一个http请求&#xff0c;从客户端到服务器端&#xff0c;都经历了什么? **Ⅰ&#xff0c;浏览器生成消息 ** &#xff08;1&#xff09;浏览器输入网址 我们的探索之旅从在浏览器中输入网址开始&#xff0c;网址&#xff0c;准确来说应该叫 UR…