Vue3+vite+cesium环境搭建
引言
目前有不少vue3+cesium的配置教学,存在以下两个问题:
(1)vue3+cli方式,随着项目的迭代,npm run serve 启动调试很慢;
(2)vue3+vite 确实能将调试启动提升不少的,但是提供的cesium配置方式在调用例如3dtiles位置调整等api时存在问题。
例如:
Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'then')
尝试了很多方式,总结了vue3+vite+cesium的配置方法。
1、前置准备
(如已有环境跳过)
(1)确保电脑已安装nodejs 16以上版本
版本查看方式
node -v
(2)安装npm
npm install npm@latest -g
2、创建工程
npm create vite@latest

3、进入工程
cd test_cesium
4、安装依赖
npm install
5、启动工程
npm run dev


6、安装cesium
(1)这里先采用vite插件方式安装cesium
npm i cesium vite-plugin-cesium vite -D
(2)此时修改vite.config.js配置(见7章)再引入cesium即可使用很方便,但存在开头存在的问题,无法使用cesium的createWorldTerrain、3dtiles矩阵调整等功能,这里可能是版本问题(不确定)。

(3)因为也没找到vite升级cesium的说明,尝试使用如下命令升级cesium版本
npm install cesium@1.95.0 -s
版本建议锁定,防止一些版本差异引起的项目错误
7、代码
HelloWorld.app
<script setup>
import { onMounted } from 'vue'
import * as Cesium from 'cesium';onMounted(() => {Initmap()
})//初始化地图
function Initmap() {Cesium.Ion.defaultAccessToken = '你的token'const esri = new Cesium.ArcGisMapServerImageryProvider({url: 'https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer'});const viewer = new Cesium.Viewer("cesiumContainer", {infoBox: false,//是否显示信息框,默认truebaseLayerPicker: false,imageryProvider: esri,terrainProvider: Cesium.createWorldTerrain({requestWaterMask: true,requestVertexNormals: true})});}
另一种写法
<script >
import * as Cesium from 'cesium';
import { onMounted, } from 'vue'
export default {setup() {onMounted(() => {Initmap()return {Initmap}//初始化地图function Initmap() {Cesium.Ion.defaultAccessToken = '你的token'const esri = new Cesium.ArcGisMapServerImageryProvider({url: 'https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer'});const viewer = new Cesium.Viewer("cesiumContainer", {infoBox: false,//是否显示信息框,默认truebaseLayerPicker: false,imageryProvider: esri,terrainProvider: Cesium.createWorldTerrain({requestWaterMask: true,requestVertexNormals: true})});}})}
}
#cesiumContainer {width: 100%;height: 100%;overflow: hidden;}
vite.config.js
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import cesium from 'vite-plugin-cesium';// https://vitejs.dev/config/
export default defineConfig({plugins: [vue(),cesium()],
})
App.vue
<script setup>
import HelloWorld from './components/HelloWorld.vue'</script><template><HelloWorld />
</template><style >
html,body,#app{width: 100%;height: 100%;overflow: hidden;margin: 0px;padding: 0px;
}
</style>
8、效果

解决了cesium一些api无法使用的问题,可以调整地形、水体以及3dtiles矩阵调整等。
相关文章:
Vue3+vite+cesium环境搭建
引言 目前有不少vue3cesium的配置教学,存在以下两个问题: (1)vue3cli方式,随着项目的迭代,npm run serve 启动调试很慢; (2)vue3vite 确实能将调试启动提升不少的&…...
metaObjecthandler 的基本理解与使用(自动插入更新人和创建人)
metaObjecthandler 的基本理解与使用(自动插入更新人和创建人) mysql 自动插入更新和修改时间 更新字段信息 ALTER TABLE test MODIFY create_date timestamp not null default CURRENT_TIMESTAMP; ALTER TABLE test MODIFY update_date timestamp not null default CURRE…...
SpringBoot与ES7实现多条件搜索
SpringBoot与ES7实现多条件搜索 利用Kibana内置的航班数据,查询从威尼斯到中国按票价升序排列的前10条航班数据。 第一步,新建SpringBoot功能,pom.xml引入四个依赖。 <dependency><groupId>org.elasticsearch.client</groupI…...
【排序算法】 快速排序(快排)!图解+实现详解!
🎥 屿小夏 : 个人主页 🔥个人专栏 : 算法—排序篇 🌄 莫道桑榆晚,为霞尚满天! 文章目录 📑前言🌤️快速排序的概念☁️快速排序的由来☁️快速排序的思想☁️快速排序的实…...
急招开发、安全工程师实习生
信息安全工程师-实习生 公司:四川久远银海软件股份有限公司 工作职责 1、负责对公司WEB应用、APP、小程序、公众号等产品进行安全渗透测试; 2、负责对参与攻防演练、护网行动的项目组提供安全技术支撑; 3、负责提供基线核查、风险评估、主…...
数据结构与算法—插入排序选择排序
目录 一、排序的概念 二、插入排序 1、直接插入排序 直接插入排序的特性总结: 2、希尔排序 希尔排序的特性总结: 三、选择排序 1、直接选择排序 时间复杂度 2、堆排序—排升序(建大堆) 向下调整函数 堆排序函数 代码完整版: …...
基于词云图的短信热词数据可视化
热词统计:短信、邮件、微信、QQ、微博、电商评价、新闻、各行业热词(旅游、世界杯、战争、考研等)、热点事件等场景。 展示模型:给定多段文本,绘制出词云图。 核心思想:根据样本集中的文本包含的高频词…...
Linux/centos上如何配置管理Web服务器?
Linux/centos上如何配置管理Web服务器? 1 Web简单了解2 关于Apache3 如何安装Apache服务器?3.1 Apache服务安装3.2 httpd服务的基本操作 4 如何配置Apache服务器?4.1 关于httpd.conf配置4.2 常用指令 5 简单实例 1 Web简单了解 Web服务器称为…...
Java EE进阶2
包如果下载不下来怎么办? 1,确认包是否存在 2.如果包存在就多下载几次 3.如果下载了很多次都下载不下来,看看是不是下面几步出现了问题? 1)是否配置了国内源 settings.xml 2)目录是否为全英文,存在中文的话就修改路径 3)删除本地仓库的 jar 包,重新下载(可能由于网络的原…...
最新AI系统ChatGPT源码+AI绘画系统源码+支持GPT4.0+Midjourney绘画+搭建部署教程+附源码
一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如…...
大厂面试题-为什么一线互联网公司严禁使用存储过程
之所以互联网公司不让用,主要有几个方面的原因: 1.存储过程不好调试,一旦涉及到非常复杂的逻辑,定位问题的时候比较麻烦 2.存储过程的一致性很差,如果从Oracle迁移到MySQL,涉及到部分数据库独有特性的时候…...
SpringBoot+Swagger详细使用方法
一、接口文档概述 swagger是当下比较流行的实时接口文文档生成工具。接口文档是当前前后端分离项目中必不可少的工具,在前后端开发之前,后端要先出接口文档,前端根据接口文档来进行项目的开发,双方开发结束后在进行联调测试。 二…...
[动态规划] (十二) 简单多状态 LeetCode 213.打家劫舍II
[动态规划] (十二) 简单多状态: LeetCode 213.打家劫舍II 文章目录 [动态规划] (十二) 简单多状态: LeetCode 213.打家劫舍II题目解析解题思路状态表示状态转移方程初始化和填表顺序返回值提醒 代码实现总结 213. 打家劫舍 II 题目解析 本题是对打家劫舍和按摩师的升级题型&am…...
算法与数据结构之链表
链表的定义,相信大家都知道,这里就不赘述了只是链表分单向链表和双向链表,废话不多说,直接上代码 链表节点的定义: public class Node {int val;Node next;Node pre;public Node(int val, Node next, Node pre) {thi…...
深入剖析React Hooks中的 useCallback
前言 自 React 16.8 版本引入 Hooks 以来,useCallback 成为了前端开发者们越来越青睐的一个功能。useCallback 可以有效优化组件性能,尤其在处理函数式组件中的状态更新时。本文将详细介绍 useCallback 的用法及其注意事项。 1. useCallback 简介 use…...
微服务中配置文件(YAML文件)和项目依赖(POM文件)的区别与联系
实际上涉及到了微服务架构中的两个重要概念:服务间通信和项目依赖管理。在微服务架构中,一个项目可以通过两种方式与另一个项目建立依赖关系:通过配置文件(如YAML文件)和通过项目依赖(如POM文件)…...
Java快速排序算法、三路快排(Java算法和数据结构总结笔记)[7/20]
一、什么是快速排序算法 快速排序的基本思想是选择一个基准元素(通常选择最后一个元素)将数组分割为两部分,一部分小于基准元素,一部分大于基准元素。 然后递归地对两部分进行排序,直到整个数组有序。这个过程通过 par…...
【React】05.JSX语法使用上的细节
水水水水水...
LeetCode 1759. 统计同质子字符串的数目【字符串】1490
本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…...
FPGA UDP RGMII 千兆以太网(2)IDDR
1 xilinx原语 在 7 系列 FPGA 中实现 RGMII 接口需要借助 5 种原语,分别是:IDDR、ODDR、IDELAYE2、ODELAYE2(A7 中没有)、IDELAYCTRL。其中,IDDR和ODDR分别是输入和输出的双边沿寄存器,位于IOB中。IDELAYE2和ODELAYE2,分别用于控制 IO 口输入和输出延时。同时,IDELAYE2 …...
OpenLayers 可视化之热力图
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...
Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...
微信小程序 - 手机震动
一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注:文档 https://developers.weixin.qq…...
探索Selenium:自动化测试的神奇钥匙
目录 一、Selenium 是什么1.1 定义与概念1.2 发展历程1.3 功能概述 二、Selenium 工作原理剖析2.1 架构组成2.2 工作流程2.3 通信机制 三、Selenium 的优势3.1 跨浏览器与平台支持3.2 丰富的语言支持3.3 强大的社区支持 四、Selenium 的应用场景4.1 Web 应用自动化测试4.2 数据…...
TSN交换机正在重构工业网络,PROFINET和EtherCAT会被取代吗?
在工业自动化持续演进的今天,通信网络的角色正变得愈发关键。 2025年6月6日,为期三天的华南国际工业博览会在深圳国际会展中心(宝安)圆满落幕。作为国内工业通信领域的技术型企业,光路科技(Fiberroad&…...
【深尚想】TPS54618CQRTERQ1汽车级同步降压转换器电源芯片全面解析
1. 元器件定义与技术特点 TPS54618CQRTERQ1 是德州仪器(TI)推出的一款 汽车级同步降压转换器(DC-DC开关稳压器),属于高性能电源管理芯片。核心特性包括: 输入电压范围:2.95V–6V,输…...
从零手写Java版本的LSM Tree (一):LSM Tree 概述
🔥 推荐一个高质量的Java LSM Tree开源项目! https://github.com/brianxiadong/java-lsm-tree java-lsm-tree 是一个从零实现的Log-Structured Merge Tree,专为高并发写入场景设计。 核心亮点: ⚡ 极致性能:写入速度超…...
GB/T 43887-2024 核级柔性石墨板材检测
核级柔性石墨板材是指以可膨胀石墨为原料、未经改性和增强、用于核工业的核级柔性石墨板材。 GB/T 43887-2024核级柔性石墨板材检测检测指标: 测试项目 测试标准 外观 GB/T 43887 尺寸偏差 GB/T 43887 化学成分 GB/T 43887 密度偏差 GB/T 43887 拉伸强度…...
HarmonyOS-ArkUI 自定义弹窗
自定义弹窗 自定义弹窗是界面开发中最为常用的一种弹窗写法。在自定义弹窗中, 布局样式完全由您决定,非常灵活。通常会被封装成工具类,以使得APP中所有弹窗具备相同的设计风格。 自定义弹窗具备的能力有 打开弹窗自定义布局,以…...
MySQL间隙锁入手,拿下间隙锁面试与实操
一、MySQL 间隙锁,究竟是什么? 在 MySQL 的世界里,间隙锁(Gap Lock)就像是一个默默守护数据一致性的卫士,看似低调,却在并发控制中扮演着至关重要的角色。 想象一下,你去图书馆借…...
