【Vue+CesiumJS学习(1)】在Vue中使用Cesium(两种方法)

在Vue中使用Cesium可以通过使用Cesium官方提供的包,或者使用开发者封装后的二次包。本文对两种方式均进行了介绍。

Vue版本2.6.x

前提准备,需要从Cesium中申请一个个人Token

申请地址

两种方法均在Vue项目中运行,略过Vue项目创建步骤。

方法一:直接使用官网提供的cesium包

Step 1:下载包

npm install cesium --save

Step 2:将下载后的文件从node_modules中复制一部分到public文件夹下

Step 3:在index.html中引入js文件和css文件

<link rel="stylesheet" href="./Cesium/Widgets/widgets.css">
<script src="./Cesium/Cesium.js"></script>

Step 4:新建一个Vue文件,或者直接对默认的HelloWorld.vue进行修改

<template>
    <div id="cesiumContainer" style="width: 100%; height: 100%;"></div>
</template>

<script>
export default{
    name:'cesium',
    mounted(){
        Cesium.Ion.defaultAccessToken = 'your token';
        const viewer = new Cesium.Viewer('cesiumContainer');
        console.log(viewer)
    }
}
</script>

Step 5:在app.vue中加载组件

<template>
  <div id="app">
    <img alt="Vue logo" src="./assets/logo.png">
    <Cesium/>
    <!-- <HelloWorld msg="Welcome to Your Vue.js App"/> -->
  </div>
</template>

<script>
// import HelloWorld from './components/HelloWorld.vue'
import Cesium from './components/cesiumtest.vue'
export default {
  name: 'App',
  components: {
    Cesium
    // HelloWorld
  }
}
</script>

Step 6:注意事项

如果报错的话,有个设置是需要在package.json中添加,位置与“rules”同级

"globals":{
    "Cesium":true    
}

结果展示

方法二:采用开发者封装包

Step 1:下载vue-cesium

npm install vue-cesium

***注意 因为该项目于2022.12.31停止vue2版本更新,现在默认安装都是vue3版本,因此需要控制版本

npm install vue-cesium@2.1.6

Step 2:在main.js中引入

import Vue from 'vue'
import VueCesium from 'vue-cesium'

Vue.use(VueCesium, {
  cesiumPath: 'https://unpkg.com/cesium@latest/Build/Cesium/Cesium.js',
  accessToken: 'your token'
})

Step 3:组件中加载

<template>
  <div class="viewer">
    <vc-viewer>
      <vc-layer-imagery></vc-layer-imagery>
    </vc-viewer>
  </div>
</template>

<script>
export default {
  name: 'HelloWorld',
  props: {
    msg: String
  }
}
</script>

<style>
  .viewer {
    width: 100%;
    height: 400px;
  }
</style>

运行结果

开发者提供的包还有很多便捷性的东西,这里不再阐述了,有需要可以自己去看看,地址如下。

Vue-Cesium

### 集成和使用 CesiumVue 项目 #### 安装依赖库 为了在 Vue 中集成 Cesium,需要安装 `cesium` 库以及其对应的 TypeScript 类型定义文件。通过 npm 或 yarn 可以轻松完成这一步骤。 ```bash npm install cesium @types/cesium --save ``` 或者使用 Yarn: ```bash yarn add cesium @types/cesium ``` 此操作会下载并配置好所需的全部资源[^1]。 #### 创建 Cesium 组件 创建一个新的 Vue 单文件组件来封装 Cesium 的初始化逻辑。下面是一个简单的例子展示如何实现这一点: ```vue <template> <div id="cesiumContainer"></div> </template> <script lang="ts"> import { defineComponent, onMounted } from 'vue'; // 导入 Cesium 并设置路径 import * as Cesium from 'cesium'; export default defineComponent({ name: 'CesiumViewer', setup() { let viewer; onMounted(() => { // 初始化 Cesium Viewer 实例 viewer = new Cesium.Viewer('cesiumContainer', { terrainProvider: new Cesium.CesiumTerrainProvider({ url: 'https://assets.agi.com/stk-terrain/world' }) }); // 设置默认视角位置 const position = Cesium.Cartesian3.fromDegrees(-75.1641667, 39.9522222); viewer.camera.flyTo({ destination: position, orientation: { heading: Cesium.Math.toRadians(0), pitch: Cesium.Math.toRadians(-90), roll: 0.0 } }); // 清理工作 function cleanup() { if (viewer) { viewer.destroy(); } } window.addEventListener('unload', cleanup); return () => { cleanup(); }; }); return {}; }, }); </script> <style scoped> #cesiumContainer { width: 100%; height: 100vh; } </style> ``` 这段代码展示了怎样在一个 Vue 组件内部加载 Cesium 地图,并设置了基本的地图视图参数[^2]。 #### 解决潜在问题 当引入 Cesium 后可能会遇到一些性能或样式方面的问题。对于这些问题可以采取如下措施解决: - **优化打包体积**: 使用 Webpack 插件如 `webpack-bundle-analyzer` 来分析构建产物大小,从而针对性地减少不必要的模块。 - **调整 CSS 样式冲突**: 如果页面中有其他框架带来的全局样式影响到了 Cesium 显示效果,则可以通过增加特定的选择器优先级方式修复显示异常情况。 以上方法能够帮助开发者顺利地将 Cesium 整合到基于 Vue 构建的应用程序当中[^3]。
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值