分享
Vue Cesium

Vue-Cesium:强大的 Vue 3 + Cesium 集成解决方案

在 Web GIS 3D 可视化领域,CesiumJS 是毋庸置疑的行业标准。
然而,直接在 Vue 项目中使用原生 Cesium,往往面临工程化能力薄弱、生命周期管理复杂、组件化困难、开发效率低下等问题。

Vue-Cesium 正是为了解决这些痛点而诞生的。它基于 Vue 3 构建,充分封装 Cesium 功能,为前端开发者提供了一套现代化、组件化、工程化的三维地球开发体验。

项目地址:https://github.com/zouyaoji/vue-cesium/tree/dev (opens in a new tab)

核心特点

  • 基于 Vue 3:采用 Composition API,天然适配现代 Vue 项目。
  • 完整组件体系:将 Cesium 的实体(Entity)、图层(ImageryLayer、TerrainLayer)、特效(PostProcessStage)等进行了组件封装。
  • 响应式数据绑定:属性变更自动同步到 Cesium 场景,无需手动管理。
  • 轻松扩展性:支持自定义组件、插件机制,适合大型系统开发。
  • TypeScript 支持:内置完善类型提示,开发体验流畅。
  • 高性能优化:按需渲染,充分利用 Vue 的虚拟 DOM 机制,提升大型场景性能。
  • 良好文档与示例:官方文档详细,配套丰富示例,降低上手门槛。

主要使用场景

  • 3D 地图系统开发(智慧城市、数字孪生、数字园区等)
  • 航空航天、地质、海洋可视化应用
  • BIM 可视化、物联网可视化平台
  • 自定义 3D 图层开发与渲染

快速开始

安装依赖

# NPM
$ npm install vue-cesium --save
 
# Yarn
$ yarn add vue-cesium
 
# pnpm
$ pnpm install vue-cesium

在项目中引入( main.ts 中):

import { createApp } from "vue";
import App from "./App.vue";
import VueCesium from "vue-cesium";
import "vue-cesium/dist/index.css";
 
const app = createApp(App);
app.use(VueCesium);
app.mount("#app");

基础使用示例

<template>
  <div style="width: 100vw; height: 100vh">
    <vc-config-provider :cesium-path="vcConfig.cesiumPath">
      <vc-viewer></vc-viewer>
    </vc-config-provider>
  </div>
</template>
<script setup>
import { reactive } from "vue";
import { VcConfigProvider, VcViewer } from "vue-cesium";
 
const vcConfig = reactive({
  cesiumPath: "https://unpkg.com/cesium@latest/Build/Cesium/Cesium.js",
});
</script>

这段代码实现了一个完整的三维地球场景初始化。

添加实体

通过 vc-entity 组件,可以非常方便地向场景中添加点、线、面等实体对象。

<vc-entity
  :position="{ lng: 108, lat: 32 }"
  :label="{
    text: 'Hello World',
    pixelOffset: [0, 80],
  }"
>
</vc-entity>

  • position 支持直接传入经纬度对象。
  • label 支持配置文本内容、偏移量、颜色等属性。

添加基础图层(Imagery Layer)

添加一层 ArcGIS 影像底图。

<vc-layer-imagery>
	<vc-imagery-provider-arcgis></vc-imagery-provider-arcgis>
</vc-layer-imagery>

绘制

在实际项目中,常常需要绘制各种图形标注,Vue-Cesium 也进行了便捷封装。 具体可参考官方绘制组件文档:https://zouyaoji.top/vue-cesium/#/zh-CN/component/analyses/vc-drawings (opens in a new tab)

风场图

支持加载动态风场效果,可用于气象、海洋等可视化场景。 https://zouyaoji.top/vue-cesium/#/zh-CN/component/overlays/vc-overlay-windmap (opens in a new tab)

台风

同时支持绘制台风路径、风圈展示,适用于防灾减灾等系统开发。 https://zouyaoji.top/vue-cesium/#/zh-CN/component/overlays/vc-overlay-typhoon (opens in a new tab)

总结

Vue-Cesium 极大地降低了 CesiumJS 在 Vue 项目中的集成与开发门槛,既保持了 Cesium 强大的底层能力,又赋予了 Vue 风格的工程化体验。无论是小型演示项目,还是大型平台开发,它都是当前 Vue 体系下构建 3D 地图应用的首选方案。

如果你正在寻找一种高效开发三维 GIS Web 应用的方法,Vue-Cesium 是值得深入学习和使用的利器。