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

news/2024/11/7 12:30:33/

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

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

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

    npm create vite@latest
    

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

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

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

    2.2 安装Cesium

    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(() => {let 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(() => {let viewer = new Cesium.Viewer('cesiumContainer')
      })
      </script>
      

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

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

      (2)设置沙箱的权限

      <script setup>
      import * as Cesium from 'cesium';
      import { onMounted } from 'vue';
      onMounted(() => {let viewer = new Cesium.Viewer('cesiumContainer')let 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.ppmy.cn/news/824008.html

相关文章

初起炉灶。。。

不知是追逐流行还是真的需要&#xff0c;今天算是正式为自己建立起个Blog&#xff0c;可谓初起炉灶。 转载于:https://www.cnblogs.com/yb_cn/archive/2005/01/13/91298.html

测试开发工作者日记:2020.11.2

最近建立了讨论群&#xff0c;虽然被大家改成了催更群。但是依然是很欢乐的技术讨论&#xff0c;热火朝天的&#xff0c;老迪拜表示很欣慰&#xff5e; 但是群里有个很让人不好意思的现象&#xff0c;就是吹群主的太多了。其实群主也就是作者技术水平远远没达到专业的地步&…

明厨亮灶之AI平台算法开发

传统明厨亮灶&#xff0c;是指餐饮服务提供者采用透明玻璃、视频等方式&#xff0c;向社会公众展示餐饮服务相关过程的一种形式。使餐饮企业顾客可以直观地看到后厨员工的操作是否规范&#xff0c;卫生是否合格&#xff0c;是否有一些不应该出现的物品。明厨亮灶是对餐饮企业员…

系统测试——postman的400错误

如果Headers中不勾选Host&#xff0c;调用接口就会报400 Bad Request错误。

Yocto令Linux羽化成蝶

作为开放源码运动的旗舰&#xff0c;Linux曾经是新兴软件企业变革传统软件产业结构的希望。可是&#xff0c;这些年走下来&#xff0c;Linux表现出来的辉煌光环似乎主要是成就了别人&#xff0c;例如风行全球的Android的基础就是Linux。反观Linux自身&#xff0c;却仍然在潜行。…

编程便笺:Html5等待还是炉灶另起

html5是一场分合的大戏&#xff0c;看得人眼花缭乱&#xff1b;html5也是热词&#xff0c;时不时可以爆炒一顿&#xff0c;紧抓开发着的眼球&#xff1b;与html5相关的往往是五年计划、十年计划&#xff0c;在今天这样的环境下&#xff0c;可以説难能可贵&#xff0c;只是在赌开…

燃料分配问题C++贪心算法

考虑贪心&#xff0c;我们应该让尽可能多地机器进行工作&#xff0c;如果把燃料全部投入到少数几个机器上&#xff0c;那么很容易到达上限。而燃料越分散&#xff0c;则越不容易达到上限。 #include <cstdio> #include <algorithm> #define ll long long using na…

[人工智能][转]机器学习之迭代法

浅说机器学习中“迭代法” 迭代法也称辗转法,是一种不断用变量的旧值递推新值的过程,跟迭代法相对应的是直接法(或者称为一次解法),即一次性解决问题。 迭代算法是用计算机解决问题的一种基本方法。它利用计算机运算速度快、适合做重复性操作的特点,让计算机对一组指令(…