Vue + Cesium快速搭建(无需配置)

本文详细介绍了如何在Vue项目中通过两种方式安装和配置Cesium库:直接引入并配置和使用vue-cli-plugin-cesium插件。过程中涉及到了Webpack、SASS加载器和不同VueCLI版本的问题解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方式一:直接引入(最简单)

1.安装Cesium(Vue搭建可以看我上一期的文章)
npm i cesium -save
2.将node_modules\cesium\Build\Cesium文件夹拷贝到项目的public文件中
3.在public\index.html引入Cesium
<!DOCTYPE html>
<html lang="">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <link rel="icon" href="<%= BASE_URL %>favicon.ico">
    <title><%= htmlWebpackPlugin.options.title %></title>
    <!--在这里引入Cesium和css文件-->
    <script src="Cesium/Cesium.js"></script>
    <link href="Cesium/Widgets/widgets.css" rel="stylesheet">
  </head>
  <body>
    <noscript>
      <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
    </noscript>
    <div id="app"></div>
    <!-- built files will be auto injected -->
  </body>
</html>
4.加载Cesium

当我们在index.html中引入了Cesium.js后,默认Cesium对象就挂载到了Window对象上面,在Vue文件中加载:

<template>
  <div class="home">
      <div id="cesiumContainer"></div>
  </div>
</template>

<script>
export default {
data() {
  return {
    map: {}
  }
},
components: {},
created() {},
mounted() {
  const viewer = new window.Cesium.Viewer('cesiumContainer')
  console.log(viewer)
},
computed: {},
methods: {
  initMap() {}
}
}
</script>
<style scoped lang="scss">
  .home {
      width: 100%;
      height: 100%;
  }
  #cesiumContainer {
      height: 100%;
      width: 100%;
  }
</style>

5.运行后我们可能会遇到报错Failed to resolve loader: sass-loader

需要引入 sass-loader 和 node-sass 包:

cnpm install sass-loader -D
cnpm install node-sass -D
6.接下来就可以看到地球啦!

在这里插入图片描述

方式二:使用vue-cli-plugin-cesium 插件安装cesium(需要申请key)

(因为插件基于webpack的,当前插件只支持 VueCLI3.0+ 版本)

1.安装vue-cli-plugin-cesium
vue add vue-cli-plugin-cesium
2.但最后结果都会报错:ValidationError: Invalid options object. Copy Plugin has been initialized using an options object that does not match the API schema.
3.经多次踩坑之后发现,一切问题都是安装的vue-cli脚手架版本太高所致。

卸载vue-cli2:npm uninstall vue-cli -g
卸载vue-cli3:npm uninstall @vue/cli -g

vue安装:

npm install -g @vue/cli (安装的是最新版)
npm install vue-cli@2.9.6 (指定版本为3.0以下版本)
npm install -g @vue/cli@4.5.17(指定版本为3.0以上版本)

其他博主4.5.17版本的vue-cli安装cesium可以成功,所以我就也安装了这个版本。

4.新建项目,重新安装vue-cli-plugin-cesium

安装完成后运行可能会遇到:Error: error:0308010c:digital envelope routines::unsupported [Node Error Solved]
修改你的node版本为16.16.0

5.在vue项目中打开main.js,添加在cesium官网申请到的key值:
import { createApp } from 'vue'
import App from './App.vue'
import 'cesium/Widgets/widgets.css'
Cesium.Ion.defaultAccessToken = '申请的key值';

createApp(App).mount('#app')
6.运行项目即可:
npm run serve
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王八八。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值