Cesium-安装和引入问题

news/2025/1/16 15:46:15/文章来源:https://www.cnblogs.com/khrushchefox/p/18675132

CesiumJS

库的构成

没有index.js的出口文件

主库文件有三种格式,ESModule 的是 index.jsIIFE 的是 Cesium.jsCommonJS 的是 index.cjs

除了主库文件外,CesiumJS 还有 4 个文件夹下的静态资源:

  • Assets 文件夹,图片或 JSON 等前端运行时可能用到的资源
  • ThirdParty 文件夹,WebAssembly 等前端运行时可能用到的第三方资源
  • Widgets 文件夹,主要是各个 CesiumJS 自带的界面小部件的 CSS 文件
  • Workers 文件夹,前端运行时用到的 WebWorker 的构建版本(WebWorker 由于一些原因,在前端运行时仍然用 CommonJS 格式加载)

如何配置

使用 External 模式引入静态库 - 不打包静态库

通过 npm 下载的 cesium 包中包含官方打包好了的 构建版本 库(Build),没有必要让 Vite 将 CesiumJS 源代码再次打包,而应将其作为外部依赖

也就是配置 Vite 的 external 项,不打包,使用 CDN 或 public 文件夹下的库程序、资源。

在 Vite 中,需要借助两个社区插件完成 CesiumJS 的外部化:

  • vite-plugin-externals
  • vite-plugin-html-config

前者告诉 Vite 什么 dependencies 不参与打包,后者告诉 Vite 打包后的产物哪些 dependencies 需要在页面入口 html 文件中随 public 目录(或 CDN)引入。

引入问题

在代码中,有一些特殊的关键字、指令会被打包器识别,打包器会帮你把相关的资源打包、转译。

在 Webpack ,你可以使用 import 指令引入 css 文件或图片

  • Webpack 本身只能处理 import 进来的 JavaScript 文件
  • 对于其它的资源,则使用各种 Loader 完成打包处理过程。

Vite 则开箱支持了众多 Web 前端的资源的导入。但是,3D 领域的模型文件就没有支持,不能通过 import 命令导入,除非安装了处理对应文件格式的插件。像下面的导入指令,Vite 并不会帮你处理:

import CarModel from '@/assets/data/model.glb'

资源路径

  • 工程的路径
  • 运行时的路径
    • 开发运行时
    • 打包后运行时
new Cesium3DTileset({// vite 等打包器并不会帮你处理这个路径,Cesium 在发出请求也不会url: '@/assets/tilesets/tileset.json'
})
new Cesium3DTileset({// 或下面的例子,运行时的基础地址是 http://localhost:5173,// 那么前端发起请求就会是 http://localhost:5173/data/tileset.jsonurl: './data/tileset.json'
})

Vue2 引入Cesium

  1. 在node_models中找到cesium\Build, 将此文件下的Cesium文件复制出来放在项目的静态资源public中或者static中

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

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

    <style>@import url(/static/Cesium/Widgets/widgets.css);@import url(/static/Cesium/Widgets/lighter.css);
    </style>
    

Vue3 引入Cesium

  1. 安装Cesium和插件: npm i cesium@1.99 vite-plugin-cesium

  2. 进行插件的配置

    import cesium from 'vite-plugin-cesium'
    export default defineConfig({plugins: [cesium(),],
    
  3. app.vue中引入Cesium

    import * as Cesium from 'cesium'
    console.log(Cesium)
    

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

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

相关文章

LabelMatrix 标签软件 | LABEL MATRIX 条形码标签软件

LabelMatrix 标签软件 | LABEL MATRIX 条形码标签软件LabelMatrix 专业顾问 手机|微信:13928851814LABEL MATRIX 条形码标签软件 借助功能丰富的条形码标签软件,为将来的发展奠定坚实的基础适用于简单标签需求的条形码标签软件提供帮助的内置向导熟悉的 Windows 用户界面10…

《操作系统真相还原》实验记录2.5——线程实现

本文章实现内容如下: 1. 实现单线程的创建功能 2. 实现多线程调度的基本功能,包含:时钟中断处理函数;任务调度器;任务切换函数;零、项目说明本项目仓库现已公开,地址:GitHub:-HC-OS-操作系统设计项目 本项目当前进度:已完成多线程调度基础功能;一、前置知识点 1.1 …

360SafeBrowsergetpass:红队360浏览器密码抓取工具

免责声明 仅限用于技术研究和获得正式授权的攻防项目,请使用者遵守《中华人民共和国网络安全法》,切勿用于任何非法活动,若将工具做其他用途,由使用者承担全部法律及连带责任,作者及发布者不承担任何法律连带责任项目介绍 红队一键辅助抓取360安全浏览器密码的CobaltStrik…

连续番茄时钟和长休息

原始时钟只支持手动25min+休息,用js增加连续自动番茄去支持Tempermonkey的浏览器的Add-ons安装 代码 https://pomodoro.pomodorotechnique.com/ 打开后刷新一次// ==UserScript== // @name Automated Pomodoro with Long Break // @namespace http://tampermonkey.…

Kernel Memory: 强大的AI驱动记忆系统

Kernel Memory简介 Kernel Memory(简称KM)是由微软开发的一个强大的多模态AI服务,专门用于高效索引和处理大规模数据集。它支持检索增强生成(RAG)、合成记忆、提示工程和自定义语义记忆处理等先进功能,为构建智能应用提供了强大的基础设施。 KM可以作为Web服务、Docker容器、C…

亚矩阵云手机:服务于未来新型电商矩阵的助力者

亚矩阵云手机是基于端云一体虚拟化技术 通过云网、安全、AI等数字化能力,弹性适配用户个性化需求,释放手机本身硬件资源,随需加载海量云上应用的手机形态 简单来说,云手机=云服务器+Android OS,用户可以远程实时控制云手机,实现安卓APP的云端运行;也可以基于云手机的基础算力,高…

0.LED基础控制

典中典之发光二极管,我从小学到大长脚是正级,断脚是负极 里面大块的是负级,小块的是正极 电阻标注:若标注102 -> 代表着为1K电阻(10^2) 若标注473 -> 代表着为47K电阻(47 * 10^3) 以此类推 其他器件标注也为类似模式RP7 RP9模块为限流电阻 此单片机使用TTL规范(高…

ITIL 4的4个维度

ITIL 4 于 2019 年推出,其中包含 ITIL 的一些新方面,例如服务价值体系和四个维度(后者是本文的主题)。ITIL 的大部分价值和可信度在于 缺乏原创性:ITIL 中的想法和建议基于常识、经过验证的有效性和悠久的使用历史。这四个维度是经过充分验证和广泛使用的概念的完美示例 阐…

小红书已被TikTok“难民”攻占!谁能接住这泼天富贵?

谁都不会想到,美国即将对Tiktok发出的禁令会让故事发生这样的转向,小红书竟成最后“赢家”。 小红书首页的“国际范” 一夜之间,小红书的首页被大量英文帖子“攻占”。中国网友纷纷表示:“一觉醒来,我成外国人了?”。这些新用户自称“TikTok难民”,并迅速在小红书上开设…

elasticsearch之DSL查询结果处理

搜索的结果可以按照用户指定的方式去处理或展示。排序 分页 搜索关键词高亮排序 elasticsearch默认是根据相关度算分(_score)来排序,但是也支持自定义方式对搜索结果排序。可以排序字段类型有:keyword类型、数值类型、地理坐标类型、日期类型等。 普通字段排序 keyword、数…

倍增求lca

非常重要的东西 我甚至模拟赛都不打了来打笔记 很简单啊,朴素lca是这样,两个节点,先令深度相等,然后一个一个往上跳直到跳到相同的位置则那个点为两点的lca 但是令深度相等与往上跳的过程都要一个一个慢慢跳所以时间复杂度拉满了 那么我们能以什么方式优化呢 我们可以发现,…

可视化管理:并行开发的必备工具

随着软件开发复杂度的提升,如何在并行开发模式中有效管理资源与进度成为团队面临的重要挑战。而看板工具以其对瓶颈的直观展示与管理能力,成为解决这一问题的关键手段。一、并行开发中的典型瓶颈问题 并行开发是一种高效但复杂的模式,其主要瓶颈包括: 1. 资源分配不均:各模…