当前位置: 首页 > news >正文

vue2中引入cesium全步骤

1.npm 下载cesium建议指定版本下载,最新版本有兼容性问题

npm install cesium@1.95.0

2.在node_models中找到cesium将此文件下的Cesium文件复制出来放在项目的静态资源public中或者static中,获取去github上去下载zip包放在本地也可以

3.在index.html中引入js和css

<script src="./static/Cesium/Cesium.js"></script><link rel="stylesheet" href="./static/Cesium/Widgets/widgets.css">

4.现在就可以在页面中打压cesium对象了如果有输出说明引入成功可以直接使用

<div id="my-map"></div><div id="myModal" class="modal"><div id="modal-body"><div id="modelContent">.....自定义样式
<div>
</div>
</div>
mounted(){//设置tokenCesium.Ion.defaultAccessToken = "cesium的token自己去官网申请";var lagObj = [6378137.0, 6378137.0, 6356752.3142451793];//定义地球形状Cesium.Ellipsoid.WGS84 = Object.freeze(new Cesium.Ellipsoid(lagObj[0], lagObj[1], lagObj[2]));const viewer = new Cesium.Viewer('my-map', {homeButton: false,sceneModePicker: false,baseLayerPicker: false, // 影像切换animation: false, // 是否显示动画控件infoBox: false, // 是否显示点击要素之后显示的信息selectionIndicator: false, // 要素选中框geocoder: false, // 是否显示地名查找控件timeline: false, // 是否显示时间线控件fullscreenButton: false,shouldAnimate: false,scene3DOnly: true, // 每个几何实例仅以3D渲染以节省GPU内存navigationHelpButton: false, // 是否显示帮助信息控件imageryProvider: new Cesium.UrlTemplateImageryProvider({url: '',//地图背景链接maximumLevel: 17,//瓦片图最大层级})});// 去掉logoviewer.cesiumWidget.creditContainer.style.display = "none";// 加载分割模型3dtitlesconst tileset = new Cesium.Cesium3DTileset({// 3DTiles文件夹的路径url: "/xxxxx/tileset.json",});// 创建一个Entity对象,表示标注点(多个标注点继续写就行会自动增加到 viewer.entities对象)viewer.entities.add({// 设置实体的位置 标注点显示在3D Tiles模型上方(8.0)position: Cesium.Cartesian3.fromDegrees(108.22690195918085, 36.01883508577498, 8.0), // 纬度, 经度// 标记图片billboard: {image: '/static/model/address.png', // 图片的URLscale: 0.1//图片缩放大小},description: '这里是北京市人民大会堂' // 鼠标悬浮时显示的描述});
// 创建一个屏幕空间事件处理器(增加标注点的点击弹框自定义样式)var handler = new Cesium.ScreenSpaceEventHandler(viewer.canvas);// 用于存储点击位置var lastClickPosition = null;var lon = null;var lat = null;handler.setInputAction(function (click) {const pickedObject = viewer.scene.pick(click.position);const { ellipsoid } = viewer.scene.globe;console.log(viewer.entities, 'viewer.entities++++')const cartesian = viewer.camera.pickEllipsoid(click.position, ellipsoid);const cartographic = ellipsoid.cartesianToCartographic(cartesian);if (Cesium.defined(pickedObject)) {lon = Cesium.Math.toDegrees(cartographic.longitude);lat = Cesium.Math.toDegrees(cartographic.latitude);lastClickPosition = click.position;// 显示模态框showPopup(lastClickPosition);}}, Cesium.ScreenSpaceEventType.LEFT_CLICK);var modal = document.getElementById('myModal');var contentDiv = document.getElementById('modelContent');function showPopup(position) {// 清空模态框内容document.getElementById('modal-body').innerHTML = '';// 复制内容到模态框var cloneContent = contentDiv.cloneNode(true);document.getElementById('modal-body').appendChild(cloneContent);modal.style.display = "block";// 设置模态框的位置updatePopupPosition(position);// 添加关闭按钮事件监听document.querySelector('.close').addEventListener('click', function () {modal.style.display = "none";});}// 更新弹窗位置function updatePopupPosition(position) {if (!position || !lastClickPosition) return;// 获取当前视图的屏幕边界var clientPosition = viewer.canvas.getBoundingClientRect();// 计算点击位置相对于浏览器窗口的位置var x = position.x - clientPosition.left;var y = position.y - clientPosition.top;// 设置模态框的位置modal.style.left = x + 'px';modal.style.top = y + 'px';}// 监听视图变化事件viewer.scene.postRender.addEventListener(function () {if (lastClickPosition) {const Cartesian3Result = Cesium.Cartesian3.fromDegrees(lon, lat);const Cartesian2Result222 = Cesium.SceneTransforms.wgs84ToWindowCoordinates(viewer.scene, Cartesian3Result,);updatePopupPosition(Cartesian2Result222);}});window.addEventListener('unload', function () {handler.destroy();viewer.destroy();});// 将3DTiles集添加到Cesium Viewerviewer.scene.primitives.add(tileset);// // 控制视角到模型位置  自适应大小添加new Cesium.HeadingPitchRange(0.0, -0.5, 0) 到viewer.zoomTo中viewer.zoomTo(tileset, new Cesium.HeadingPitchRange(0.0, -0.5, 0));
}

相关文章:

vue2中引入cesium全步骤

1.npm 下载cesium建议指定版本下载&#xff0c;最新版本有兼容性问题 npm install cesium1.95.0 2.在node_models中找到cesium将此文件下的Cesium文件复制出来放在项目的静态资源public中或者static中&#xff0c;获取去github上去下载zip包放在本地也可以 3.在index.html中引…...

工程师 - 智能家居方案介绍

1. 智能家居硬件方案概述 智能家居硬件方案是实现家庭自动化的重要组件&#xff0c;通过集成各种设备来提升生活的便利性、安全性和效率。这些方案通常结合了物联网技术&#xff0c;为用户提供智能化、自动化的生活体验。硬件方案的选择直接影响到智能家居系统的性能、兼容性、…...

中小企业人事管理:SpringBoot框架高级应用

摘 要 随着科学技术的飞速发展&#xff0c;社会的方方面面、各行各业都在努力与现代的先进技术接轨&#xff0c;通过科技手段来提高自身的优势&#xff0c;中小企业人事管理系统当然也不能排除在外。中小企业人事管理系统是以实际运用为开发背景&#xff0c;运用软件工程原理和…...

嵌入式Linux驱动开发日记

目录 让我们从环境配置开始 目标平台 从Ubuntu开始 从交叉编译器继续 arm-linux-gnueabihf-gcc vscode 没学过ARM汇编 正文开始——速度体验一把 写一个链接脚本 写一个简单的Makefile脚本 使用正点原子的imxdownload下载到自己的SD卡上 更进一步的笔记和说明 从IM…...

迪杰特斯拉算法(Dijkstra‘s)

迪杰斯特拉算法&#xff08;Dijkstras algorithm&#xff09;是由荷兰计算机科学家艾兹格迪科斯彻&#xff08;Edsger W. Dijkstra&#xff09;在1956年提出的&#xff0c;用于在加权图中找到单个源点到所有其他顶点的最短路径的算法。这个算法广泛应用于网络路由、地图导航等领…...

reids基础

数据结构类型 String setnx //设置key不存在&#xff0c;则添加成功 setex name 10 jack // key 10s失效&#xff0c;自动删除 hash hset hget list 按添加数据排序 lpush //左侧插入 rpush //右侧插入 set 不重复 sadd //添加…...

私有化部署视频平台EasyCVR宇视设备视频平台如何构建视频联网平台及升级视频转码业务?

在当今数字化、网络化的时代背景下&#xff0c;视频监控技术已广泛应用于各行各业&#xff0c;成为保障安全、提升效率的重要工具。然而&#xff0c;面对复杂多变的监控需求和跨区域、网络化的管理挑战&#xff0c;传统的视频监控解决方案往往显得力不从心。 EasyCVR视频融合云…...

SparkContext讲解

SparkContext讲解 什么是 SparkContext&#xff1f; SparkContext 是 Spark 应用程序的入口点&#xff0c;是 Spark 的核心组件之一。每个 Spark 应用程序启动时&#xff0c;都会创建一个 SparkContext 对象&#xff0c;它负责与集群管理器&#xff08;如 YARN、Mesos 或 Spa…...

MODBUS TCP转CANOpen网关

Modbus TCP转CANopen网关 型号&#xff1a;SG-TCP-COE-210 产品用途 本网关可以实现将CANOpen接口设备连接到MODBUS TCP网络中&#xff1b;并且用户不需要了解具体的CANOpen和Modbus TCP 协议即可实现将CANOpen设备挂载到MODBUS TCP接口的 PLC上&#xff0c;并和CANOpen设备…...

渗透测试---shell(4)脚本与用户交互以及if条件判断

声明&#xff1a;学习素材来自b站up【泷羽Sec】&#xff0c;侵删&#xff0c;若阅读过程中有相关方面的不足&#xff0c;还请指正&#xff0c;本文只做相关技术分享,切莫从事违法等相关行为&#xff0c;本人一律不承担一切后果 目录 一、shell脚本与用户进行交互 使用 read 指…...

02_Spring_IoC实现

接下来先简单说一下关于IoC的一些要点,后面我们再详细一步一步讨论。 一、IoC控制反转 IoC控制反转它是一种思想,不是具体的实现控制反转的目的是为了降低程序的耦合度,提高程序的可扩展性,从而满足OCP原则和DIP原则控制反转,那到底反转是什么东西? 我们不再使用某个对象…...

使用Python3实现Gitee码云自动化发布

仓库信息 https://gitee.com/liumou_site/ip 实现代码 import osimport requests from loguru import loggerdef gitee(ver, message, prerelease: bool False):"""在 Gitee 上创建发布版本:param ver: 版本号:param message: 发布信息:param prerelease: 是…...

Ubuntu24.04下的docker问题

按官网提示是可以安装成功的&#xff0c;但是curl无法使用https下载&#xff0c;会造成下述语句执行失败 # Add Dockers official GPG key: sudo apt-get update sudo apt-get install ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https…...

PAT (Basic Level) Practice (中文)1002 写出这个数

读入一个正整数 n&#xff0c;计算其各位数字之和&#xff0c;用汉语拼音写出和的每一位数字。 #include<bits/stdc.h> using namespace std; string a; int sum0; int f0; int n[10005]; int main(){ cin>>a; int c0; int laa.size(); for(int i…...

C07.L07.STL之映射.应用2.统计数字

题目描述 某次科研调查时得到了 n 个自然数&#xff0c;每个数均不超过 1500000000 (1.5*10^9 )。已知不相同的数不超过 10000 个&#xff0c;现在需要统计这些自然数各自出现的次数&#xff0c;并按照自然数从小到大的顺序输出统计结果。 输入格式 包含 2 行&#xff1a; 第…...

微信小程序组件详解:text 和 rich-text 组件的基本用法

微信小程序组件详解:text 和 rich-text 组件的基本用法 引言 在微信小程序的开发中,文本展示是用户界面设计中不可或缺的一部分。无论是简单的文本信息,还是复杂的富文本内容,text 和 rich-text 组件都能够帮助我们实现这些需求。本文将详细介绍这两个组件的基本用法,包…...

算法.图论-习题全集(Updating)

文章目录 本节设置的意义并查集篇并查集简介以及常见技巧并查集板子(洛谷)情侣牵手问题相似的字符串组岛屿数量(并查集做法)省份数量移除最多的同行或同列石头最大的人工岛找出知晓秘密的所有专家 建图及其拓扑排序篇链式前向星建图板子课程表 本节设置的意义 主要就是为了复习…...

this.$prompt 限制输入长度

this.$prompt(请输入关键词名称, 提示, {confirmButtonText: 确定,cancelButtonText: 取消,inputPattern: /^\d{0,50}$/,inputErrorMessage: 关键词名称长度不能超过50个字符 }).then(({ value }) > {})...

JDBC使用p6spy记录实际执行SQL方法【解决SQL打印两次问题】

p6spy介绍 p6spy 是一个开源的 JDBC 数据源代理工具&#xff0c;主要用于拦截和记录应用程序与数据库之间的所有 SQL 操作&#xff0c;方便开发者进行 SQL 调试、性能监控和问题排查。 p6spy可以打印实际执行的sql&#xff0c;在开发过程中方便调试&#xff0c;和使用框架无关…...

问题: redis-高并发场景下如何保证缓存数据与数据库的最终一致性

在高并发场景下&#xff0c;Redis 通常用作缓存层&#xff0c;与数据库结合使用以提高系统的性能。为了保证缓存数据与数据库的最终一致性&#xff0c;通常采用的有双写机制、缓存失效机制&#xff0c;基于双写机制、缓存失效机制又衍生出来了消息队列、事件驱动架构等 常见机…...

【亲测免费】 探索INA282:电流检测与测量的利器

探索INA282&#xff1a;电流检测与测量的利器 【下载地址】INA282电路图与使用说明 INA282电路图与使用说明本仓库提供了一个关于INA282的详细资源文件&#xff0c;包括电路图和使用说明 项目地址: https://gitcode.com/open-source-toolkit/9e96c 项目介绍 INA282是一…...

保姆级教程:在Ubuntu上为Ouster激光雷达配置PTP时间同步(含linuxptp/phc2sys避坑指南)

在Ubuntu上为Ouster激光雷达实现纳秒级PTP时间同步的完整指南 当自动驾驶车辆以60公里时速行驶时&#xff0c;1毫秒的时间误差会导致1.7厘米的位置偏差——这正是我们需要为激光雷达实现纳秒级时间同步的原因。本文将手把手带您完成Ouster激光雷达在Ubuntu系统上的PTP精确时间…...

视觉驱动的空间碎片智能感知方法【附数据】

✨ 长期致力于空间碎片、智能感知、图像融合、显著性检测、目标识别研究工作&#xff0c;擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流&#xff0c;点击《获取方式》 &#xff08;1&#xff09;像素级图像融合的低照度增强方法&…...

taotoken用量看板如何帮助开发者清晰掌握各模型消耗详情

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 taotoken用量看板如何帮助开发者清晰掌握各模型消耗详情 对于使用多个大模型进行开发的团队或个人而言&#xff0c;成本管理是一个…...

IO杂记I

IO 杂记 一、Selector 与 select() selector.select() 不会创建新线程&#xff0c;而是让当前线程阻塞等待&#xff0c;直到有 I/O 事件就绪。 比喻&#xff1a;一个人站在门口&#xff0c;不来客人就不动。selector.selectNow() 是非阻塞版本&#xff1a;瞥一眼门口&#xff0…...

Treelink选择工具:基于树形结构与链接关系的智能对象筛选方案

1. 项目概述&#xff1a;为什么我们需要“简化模拟选择”&#xff1f;在仿真分析、游戏开发、影视特效乃至工业设计领域&#xff0c;“模拟选择”是一个高频且令人头疼的操作。无论是为3D场景中的一片森林批量设置风力参数&#xff0c;还是在电路仿真中挑选特定节点进行信号分析…...

拷贝漫画第三方客户端完全解析:解锁高效漫画阅读新体验

拷贝漫画第三方客户端完全解析&#xff1a;解锁高效漫画阅读新体验 【免费下载链接】copymanga 拷贝漫画的第三方APP&#xff0c;仅提供基础功能&#xff0c;更多丰富功能请移步官方版本 项目地址: https://gitcode.com/gh_mirrors/co/copymanga 在数字阅读日益普及的今…...

抖音下载器终极指南:3步实现批量无水印下载,提升内容创作效率90%

抖音下载器终极指南&#xff1a;3步实现批量无水印下载&#xff0c;提升内容创作效率90% 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and b…...

华为防火墙双出口场景下基于IP-Link的GRE over IPSec高可用方案实战

1. 华为防火墙双出口高可用方案实战指南 企业网络多出口环境下的VPN高可用性一直是网络工程师的痛点。去年我负责某连锁企业总部与30家分支的VPN改造项目&#xff0c;就遇到过主链路中断导致收银系统瘫痪的尴尬情况。今天要分享的这套基于IP-Link的GRE over IPSec方案&#xff…...

从汽车电子到工业控制:手把手教你用STM32CubeMX和HAL库玩转CAN总线多节点通信

从零构建工业级CAN总线通信系统&#xff1a;基于STM32CubeMX的实战指南 1. CAN总线技术基础与工业应用场景 在现代工业控制系统中&#xff0c;CAN总线因其高可靠性和实时性已成为设备间通信的事实标准。不同于普通串行通信&#xff0c;CAN采用差分信号传输和先进的错误检测机…...