🌏【cesium系列】01.vue3+vite集成Cesium

版本:

  • cesium: ^1.128.
  • vite-plugin-cesium:^1.2.23
  • vue:^3.5.13
  • node:v22.13.0
  • pnpm:10.5.0

前言

有开发过web gis项目的同学,对于cesium应该不陌生,本文主要介绍如何在vue3项目中使用cesium,并且进行一些初始化的设置。

最终效果如下:

安装依赖

shell 复制代码
pnpm add  cesium
pnpm add vite-plugin-cesium

vite-plugin-cesium:这个插件是专门为vite定制的cesium插件。辅助我们在vite中使用cesium

可以不安装,但是不安装你就要额外配置很多东西,建议安装。

修改vite.coinfig.ts

js 复制代码
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import cesium from 'vite-plugin-cesium'
import path from 'path'
export default defineConfig({
  plugins: [vue(), cesium()],
  resolve: {
    alias: {
      '@': path.resolve(__dirname, 'src')
    }
  }
})

vite.config.js配置vite-plugin-cesium插件

创建场景

上面的步骤中,已经成功将cesium集成到我们的vue项目中了,接下来就可以使用了。

vue 复制代码
<template>
  <div class="cesium">
    <div class="cesium-container" id="cesiumMap"></div>
  </div>
</template>

<script setup lang="ts">
import { onMounted } from 'vue'
import { Viewer } from 'cesium'

onMounted(() => {
  const viewer: Viewer = new Viewer('cesiumMap')
  console.log('👉 ~ onMounted ~ viewer:', viewer)
})
</script>

<style lang="scss" scoped>
.cesium {
  position: relative;
  height: 100%;
  width: 100%;
  display: flex;
}
.cesium-container {
  position: relative;
  height: calc(100vh - 64px);
  width: 100%;
  :deep(.cesium-viewer-bottom) {
    display: none;
  }
}
</style>

这里就成功创建了三维场景

删除多余控件

ts 复制代码
const optons: { [x: string]: boolean } = {
    geocoder: false, // 地理编码控件不显示
    homeButton: false, // 默认相机位置控件不显示
    sceneModePicker: false, // 场景模式控件不显示
    baseLayerPicker: false, // 基础图层控件不显示
    navigationHelpButton: false, // 导航帮助控件不显示
    animation: false, // 动画控件不显示
    timeline: false, // 时间线控件不显示
    fullscreenButton: false, // 全屏控件不显示
    vrButton: false, // vr控件不显示
    infoBox: false, // 信息框控件不显示,点击要素后不弹出信息栏
    selectionIndicator: false // 选择跟踪控件不显示,点击要素后不弹出锁定框
  }
  const viewer: Viewer = new Viewer('cesiumMap', optons)
  console.log('👉 ~ onMounted ~ viewer:', viewer)

关闭不需要的控件之后整个场景就干净了。

结尾

操作很简单,只需要几步,我们就能成功创建一个cesium的三维场景。其他的设置视角、坐标系、中心点等更加定制化的功能就没有介绍了。

相关推荐
To_OC4 小时前
面试被问了三回三栏布局,这次我终于把 BFC 那层窗户纸捅破了
前端·css·面试
To_OC5 小时前
啃完 TS 工具类型我发现:Pick 和 Omit 原来就是一层窗户纸
前端·面试·typescript
风月说与山鬼6 小时前
三、大括号语法
前端·react.js
kyriewen7 小时前
我把最常踩的8个CORS跨域报错整理了一遍——第8个去年还不存在
前端·javascript
Csvn7 小时前
🕰️ 闭包 + setTimeout 的 5 个经典陷阱:为什么定时器看到的永远不是最新的值?
前端
lilian2338 小时前
Harmony os 技术实战|拼豆制图27:用单字符编码承载 50 张 70×70 图纸
前端·数据库·华为·harmonyos
CarIise8 小时前
CSS选择器与样式关联
前端·css·tensorflow
里欧跑得慢9 小时前
CSS 模块化架构的演进:BEM、CSS Modules 到 CSS-in-JS 的反思
前端·css·flutter·web·css-in-js
IT_陈寒9 小时前
Vue的computed属性把我坑惨了,原来我一直用错姿势
前端·人工智能·后端