vue3+vite搭建第一个cesium项目详细步骤及环境配置(附源码)

文章目录

  • 1.创建vue+vite项目
  • [2.安装 Cesium](#2.安装 Cesium)
    • [2.1 安装cesium](#2.1 安装cesium)
    • [2.2 安装vite-plugin-cesium插件(非必选)](#2.2 安装vite-plugin-cesium插件(非必选))
    • [2.3 新建组件页面map.vue](#2.3 新建组件页面map.vue)
    • [2.4 加载地图](#2.4 加载地图)
  • 3.完成效果图

1.创建vue+vite项目

打开cmd窗口执行以下命令:cesium-vue-app是你的项目名称

bash 复制代码
npm create vite@latest cesium-vue-app -- --template vue

创建完成后依次执行以下命令用于安装、启动项目:

bash 复制代码
cd cesium-vue-app
npm install
npm run dev

2.安装 Cesium

进入项目文件夹,打开cmd窗口执行:

2.1 安装cesium

bash 复制代码
npm install --save cesium

2.2 安装vite-plugin-cesium插件(非必选)

vite-plugin-cesium 是一个专门为 Vite 构建工具定制的插件,用于在 Vite 项目中轻松使用 Cesium 库。它简化了在 Vite 项目中集成 Cesium 的过程,并提供了一些额外的功能和配置选项。而直接安装 Cesium 库,你需要手动配置 Vite 项目以确保正确引入和使用 Cesium。这可能涉及到配置模块加载器、处理依赖关系、解决版本冲突等问题。相比之下,使用 vite-plugin-cesium 插件可以让这些步骤更加简单和方便;

  • cmd执行插件安装命令:
bash 复制代码
npm i vite-plugin-cesium vite -D
  • 配置vite.config.js
bash 复制代码
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import cesium from 'vite-plugin-cesium'

export default defineConfig({
    plugins: [vue(),cesium()],
})

2.3 新建组件页面map.vue

(1)引入cesium

html 复制代码
<script setup>
  import { ref } from 'vue'
  import * as Cesium from 'cesium'
</script>

(2)创建一个div作为地图容器,并设置其id为"cesiumContainer"

html 复制代码
  <div class="map-box" id="cesiumContainer">
  </div>

(3)设置地图容器样式的高度和宽度均为100%

  • 首先要将body的宽高设置为100vw和100vh;
css 复制代码
body {
  margin: 0;
  display: flex;
  place-items: center;
  min-height: 100%;
  height: 100vh;
  width: 100vw;
}
  • 其次设置vue项目dom容器的宽高为100%;
css 复制代码
#app {
  margin: 0 auto;
  text-align: center;
  height: 100%;
  width: 100%;
}
  • 最后设置地图容器的宽高
css 复制代码
<style scoped>
 .map-box {
    height: 100%;
    width: 100%;
  }
</style>

2.4 加载地图

(1)申请token

首先登录网址https://cesium.com/ion/signin/tokens,在注册后申请token,然后创建一个cesium对象,并使用我们创建的div容器承载地图。

(2)编写代码脚本加载容器。

js 复制代码
<script setup>
  import {
    ref,
    onMounted
  } from 'vue'
  import * as Cesium from 'cesium'
  onMounted(() => {
    Cesium.Ion.defaultAccessToken = "your cesium token"
    const viewer = new Cesium.Viewer('cesiumContainer', {
      geocoder: true, // 是否显示位置查找工具(true表示是,false表示否)
      homeButton: true, // 是否显示首页位置工具
      sceneModePicker: true, //是否显示视角模式切换工具
      baseLayerPicker: true, //是杏显示默认图层选择工具
      navigationHelpButton: true, //是否显示导航帮助工具
      animation: true, //是杏显示动画工具
      timeline: true, //是否显示时间轴工具
      fullscreenButton: true, //是否显示全屏按钮工具
    })
  });
</script>

3.完成效果图

相关推荐
子兮曰5 小时前
把 649 种文件格式塞进一个网页里:一个「文件不出浏览器」的预览器
前端·javascript·后端
paopaokaka_luck8 小时前
基于springboot+vue的智慧家政管理系统(AI问答、 WebSocket实时沟通、ECharts运营分析、订单规则与服务追踪)
java·javascript·spring boot·数据分析·echarts·mybatis
sm_926787058 小时前
RFID 标签打印的技术实现要点与二次开发实践
java·大数据·前端·c++·编辑器
IMPYLH8 小时前
HTML 的 <video> 元素
前端·html
溪语流沙9 小时前
【每天一个CSS | Day19】流光文字与一笔写成的手写签名
前端·javascript·css
逐光者9339 小时前
STM32——SPI 屏 · Flash · 高速
java·前端·stm32
To_OC9 小时前
同样是让 AI 写全栈,为什么别人一句话就够了
前端·前端框架·next.js
CDwenhuohuo9 小时前
electron pc项目打包成桌面端
前端·javascript·electron
前端大斗师9 小时前
「大于 1000」把 1000 元那单也算进去了:我在 Vue3 订单页对了 10 句话
前端·人工智能·typescript·大模型·原力计划
Jmyd012310 小时前
用 Web VR 引擎搭建 3D 虚拟展厅:从素材上云到多端实时渲染的完整数据链路
前端·3d·vr·三维数字化