使用vite创建vue3的Cesium基础项目

news2024/9/20 16:34:46

使用vite创建vue3的Cesium基础项目

  1. 使用vite创建vue3项目:可以参考官方文档Vite官方中文文档

    1.1 在指定文件夹路径下使用npm(前提是已经安装好了node):

    ```bash
    npm create vite@latest
    ```
    

    1.2 cd到创建的项目文件夹:

    ```bash
    cd 项目文件夹
    npm install
    npm run dev(可以暂时先不运行,等安装完Cesium再运行)
    ```
    
  2. 安装并使用Cesium;

    2.1 找到插件:vue插件,
    在这里插入图片描述
    找到社区插件,
    在这里插入图片描述
    ctrl+F搜索“Cesium”,找到Cesium的插件使用教程:Cesium插件
    在这里插入图片描述
    就能找到Cesium的安装和基本配置教程:
    在这里插入图片描述

    2.2 安装Cesium

    ```bash
    npm i cesium vite-plugin-cesium vite -D
    # yarn add cesium vite-plugin-cesium vite -D
    ```
    

    2.3 基本配置:

    1. vite.config.js
      在项目的vite.config.js文件中添加:

      import { defineConfig } from 'vite';
      import cesium from 'vite-plugin-cesium';
      export default defineConfig({
        plugins: [cesium()]
      });
      

      添加完成后如下:

      import { defineConfig } from 'vite'
      import vue from '@vitejs/plugin-vue'
      import cesium from 'vite-plugin-cesium';
      export default defineConfig({
        plugins: [vue(), cesium()]
      });
      
      
    2. 配置App.vue
      在App.vue中添加:

      <template>
        <div id="cesiumContainer"></div>
      </template>
      
      <script setup>
      import * as Cesium from 'cesium';
      import { onMounted } from 'vue';
      onMounted(() => {
        const viewer = new Cesium.Viewer('cesiumContainer')
      })
      </script>
      
      <style>
      html,
      body,
      #app,
      #cesiumContainer {
        width: 100%;
        height: 100%;
        margin: 0;
        padding: 0;
        overflow: hidden;
      }
      </style>
      
      

      这里有几个问题解读一下:
      (1)需要有一个dom节点来承载Cesium加载的地图,所以创建一个<div id="cesiumContainer"></div>
      (2)需要在初始化的时候使用钩子函数onMounted来加载,否则会一片空白onMounted(() => { const viewer = new Cesium.Viewer('cesiumContainer') })
      (3)写样式的时候记得加#app,因为创建的dom节点是挂载在#app节点下的;我按照其他的教程来写css样式的时候会有问题,加载的地图很小,所以在<style scoped>我把原来的scoped删了,并且加上#app就好多了。现在就已经基本可以看见地图了

    3. 个人问题

      3.1 我刚开始加载的地图只占页面的一部分,所以我手动调整了src/style.css文件中的代码:max-width: 100%;

      #app {
        max-width: 100%;
        margin: 0 auto;
        padding: 2rem;
        text-align: center;
      }
      

      3.2 报错

      这样写可能会报错:

      <script setup>
      import * as Cesium from 'cesium';
      import { onMounted } from 'vue';
      onMounted(() => {
        const viewer = new Cesium.Viewer('cesiumContainer')
      })
      </script>
      

      在这里插入图片描述
      搜了搜有两种解决方案:
      (1)禁用infobox,自己设计信息面板。

      <script setup>
      import * as Cesium from 'cesium';
      import { onMounted } from 'vue';
      onMounted(() => {
        const viewer = new Cesium.Viewer('cesiumContainer', { infoBox: false, })
      })
      </script>
      

      (2)设置沙箱的权限

      <script setup>
      import * as Cesium from 'cesium';
      import { onMounted } from 'vue';
      onMounted(() => {
        const viewer = new Cesium.Viewer('cesiumContainer')
        var iframe = document.getElementsByClassName('cesium-infoBox-iframe')[0];
        iframe.setAttribute('sandbox', 'allow-same-origin allow-scripts allow-popups allow-forms');
        iframe.setAttribute('src', '');
      })
      </script>
      
  3. 效果展示;
    在这里插入图片描述

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

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

相关文章

符号化的正确姿势

GUI方式 将 .ips crash report 文件拖放到 Xcode > Window > Devices and Simulators > View Device Logs中, 然后导出 .crash 符号化文件. 使用条件: crash report 对应的 Archive 包是在本机构建的 symbolicatecrash symbolicatecrash 是一个 exec (可执行文件), …

常见的BUG---1、虚拟机启动之后,突然发现没有ens33网卡

1、问题描述 今天一开启虚拟机&#xff0c;发现用XShell连接不上我的一台虚拟机&#xff0c;其他虚拟机是正常可以连接的&#xff0c;我稍微看了一下XShell的配置和Windows中的映射文件&#xff08;hosts&#xff09;&#xff0c;都没有啥问题&#xff0c;然后我就知道应该是虚…

javap反编译字节码文件

javap -v main.class{public static void main(String[] args) {int a10;int b10;int cab;return;} } Classfile /F:/myCode/java/jvm/0710_demo01/untitled/target/classes/org/example/main.classLast modified 2023年7月10日; size 447 bytesMD5 checksum 675a0d673d66326b…

基于SpringBoot+Vue的影城管理系统设计与实现

博主介绍&#xff1a; 大家好&#xff0c;我是一名在Java圈混迹十余年的程序员&#xff0c;精通Java编程语言&#xff0c;同时也熟练掌握微信小程序、Python和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…

服务器中了malox勒索病毒的解决办法流程与解密方案

随着网络科技技术的不断发展&#xff0c;越来越多的企业开始重视数据&#xff0c;数字化办公已经成为众多企业工作的常态&#xff0c;因此数据的安全性受到了额外重视。但网络科技技术的发展不仅方便了我们的工作&#xff0c;也给企业的数据安全带来了很大威胁。近期&#xff0…

基于SpringBoot+Vue的疫情网课管理系统设计与实现

博主介绍&#xff1a; 大家好&#xff0c;我是一名在Java圈混迹十余年的程序员&#xff0c;精通Java编程语言&#xff0c;同时也熟练掌握微信小程序、Python和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…

【H5】Promise的用法

系列文章 C#底层库–记录日志帮助类 本文链接&#xff1a;https://blog.csdn.net/youcheng_ge/article/details/124187709 文章目录 系列文章前言一、技术介绍二、项目源码2.1 Promise的状态2.2 Promise的结果2.3 Promise的then方法参数2.4 Promise的then方法获取数据 三、效果…

5G时代的材料新宠——液晶高分子聚合物

液晶高分子聚合物时80年代初期发展起来的一种新型高性能工程塑料&#xff0c;英文名为&#xff1a;Liquid Crystal Polymer 简称为LCP。 聚合方法以熔融缩聚为主&#xff0c;全芳香族LCP多辅以固相缩聚以制得高分子量产品。非全芳香族LCP常采用一步或二步熔融聚合制取产品。近年…

jwt介绍与使用

0.介绍 JWT(JSON Web Token)是一种开放标准&#xff0c;用于在双方之间安全地传输编码为 JSON 对象的信息。它是一个紧凑和自包含的方式&#xff0c;用于作为 JSON 对象在各方之间安全地传输信息。此信息可以进行验证和信任&#xff0c;因为它是经过数字签名的。JWT 可以使用机…

Python零基础入门(七)——Python中的选择和循环语句

系列文章目录 个人简介&#xff1a;机电专业在读研究生&#xff0c;CSDN内容合伙人&#xff0c;博主个人首页 Python入门专栏&#xff1a;《Python入门》欢迎阅读&#xff0c;一起进步&#xff01;&#x1f31f;&#x1f31f;&#x1f31f; 码字不易&#xff0c;如果觉得文章不…

大学英语四新视野 课后习题+答案翻译 Unit1~Unit8

Unit 1 Text A: Words in use 2022年6月16日 20:57 1 As the gender barriers crumbled, the number of women working as lawyers, doctors, or bankers began to increase significantly from the mid-20th century. 随着性别障碍的消除&#xff0c;从20世纪中期开始&am…

C语言陷阱——无符号数和有符号数的大小比较

C语言易错知识点——无符号数和有符号数的大小比较 我们来看两串代码 代码一&#xff1a; #include<stdio.h>int main() {int a -1;if (a > sizeof(int)){printf(">\n");}else{printf("<\n");}return 0; }代码二&#xff1a; #include…

学生用啥台灯最好?适合暑假学习的台灯推荐

孩子们终于迎来了他们的暑假&#xff0c;肯定不少孩子都已经计划好每天该玩什么游戏&#xff0c;该看什么电视了吧。这也是最让家长们头疼的一段时间&#xff0c;不仅每天要监督他们不要玩太久电子产品&#xff0c;花时间学习之外&#xff0c;还要担心他们视力健康。说到学习&a…

C++图形开发(11):小球碰到方块的判定

文章目录 1.有哪些情况&#xff1f;1.1 小球在方块左侧1.2 小球在方块上面1.3 小球在方块右侧 2.解决 1.有哪些情况&#xff1f; 今天来实现下小球碰到方块的判定 那么我们首先要明确的就是在什么时候&#xff0c;小球会碰到方块&#xff1f; 1.1 小球在方块左侧 第一个就是…

介绍Unity3D 游戏实战开发之英雄联盟

本次游戏项目为类dota游戏中的经典之作《英雄联盟》&#xff0c;向经典致敬。通过本次课程&#xff0c;你会学到网游开发模式、C#服务器开发、协议定制、Unity5.0新特性开发、UGUI应用、同步方案、解决问题思路、各种扩展工具的开发………&#xff01; 演示地址&#xff1a; w…

为什么企业必须重视数字化转型?

在当今快速发展的商业环境中&#xff0c;数字化转型对于企业的生存、增长和竞争力至关重要。数字化转型是指将数字技术集成到企业的各个方面&#xff0c;从根本上改变企业的运营方式以及为客户和利益相关者提供价值。企业优先考虑数字化转型的一些原因&#xff1a; 提高效率和生…

Wine编译环境搭建及使用完整流程详细笔记

Wine编译环境搭建及使用完整流程详细笔记 1. 背景及资源文件下载1.1 背景说明(实现目标)1.2 VMWare下载地址&#xff1a;1.3 Debian安装文件地址1.34 Ubuntu安装文件地址1.5 Wine源码下载地址1.5.1 Web下载地址1.5.2 Git下载地址 2. 常用文档2.1 Wine Document2.2 Build Wine D…

透彻理解 UART 通信的基本方法

UART是一种异步全双工串行通信协议&#xff0c;由 Tx 和 Rx 两根数据线组成&#xff0c;因为没有参考时钟信号&#xff0c;所以通信的双方必须约定串口波特率、数据位宽、奇偶校验位、停止位等配置参数&#xff0c;从而按照相同的速率进行通信。 异步通信以一个字符为传输单位…

simulink m脚本加载

手动 在matlab下执行 run(UntitledConfig.m) 然后在similink下再重新编译一次 自动 [Matlab]Simulink预先加载m文件_simulink加载m文件_祥知道的博客-CSDN博客