vue + cesium 环境搭建

1 篇文章 1 订阅

版本:

vue v2.5.2

cesium v1.68.0

开发工具使用vscode

 

node、vue-cli等安装步骤网上都说烂了,这里就不说了。

下载webpack模板项目,安装cesium依赖

在自己喜欢的位置创建测试文件夹,这里我用的cesiumDemo,拖入vscode中,右键“在终端中打开”。

在终端中输入

就能下载适合新手开发的vue项目了

test是项目名 可以自定义

等下完后,继续终端输入

cd test

正式进入项目内,继续输入

npm install cesium --save

下载cesium依赖。

 

集成cesium

按照网上文章,大体如下:

配置webpack.base.conf.js文件

// 定义Cesium源码路径
const cesiumSource = '../node_modules/cesium/Source'

如果运行时报 "Cannot find module "." 可以考虑将 unknownContextRegExp 放开。

配置 webpack.dev.conf.js 文件

// 定义Cesium源码路径
const cesiumSource = 'node_modules/cesium/Source'
const cesiumWorkers = '../Build/Cesium/Workers'

这里cesium找的是依赖包里的Source文件夹(下的js入口),对应的cesiumWorkers则是在cesiumSource基础上去Workers目录下引用具体的类文件噢,看不懂相对路径的同学可以再重温一下。

在plugins下新增如下插件,拷贝静态资源

 

配置 webpack.prod.conf.js 文件

// 定义Cesium源码路径
const cesiumSource = 'node_modules/cesium/Source'
const cesiumWorkers = '../Build/Cesium/Workers'

同样在plugins中添加插件

需要注意的是 CESIUM_BASE_URL这里需要用相对路径,所以要用stringify('./'),否则会拼接成绝对路径。

创建cesium组件并引用

创建cesiumView组件。

<template>
 <div id="cesiumContainer">

 </div>
</template>

<script>
import '../../node_modules/cesium/Build/Cesium/Widgets/widgets.css'
export default {
  name: 'cesiumView',
  mounted () {
    var view = new this.Cesium.Viewer('cesiumContainer')
  }
}
</script>

<style scoped>

</style>

 

修改App.vue

<template>
  <div id="app">
    <!-- <img src="./assets/logo.png"> -->
    <cesiumView/>
  </div>
</template>

<script>
import cesiumView from './components/cesiumView'
export default {
  name: 'App',
  components: {
    'cesiumView': cesiumView
  }
}
</script>

<style>
/* //保证浏览器全屏幕显示,没有多余的白边 */
html, body, #cesiumContainer {
 width: 100%;
 height: 100%;
 margin: 0;
 padding: 0;
 overflow: hidden;
}
#app {
  font-family: 'Avenir', Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  /* margin-top: 60px; */
}
</style>

 

修改router/index.js

import Vue from 'vue'
import Router from 'vue-router'
// import HelloWorld from '@/components/HelloWorld'
import cesiumView from '@/components/cesiumView'

Vue.use(Router)

export default new Router({
  routes: [
    {
      path: '/',
      name: 'cesiumView',
      component: cesiumView
    }
  ]
})

 

修改main.js

// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import App from './App'
import router from './router'
// import '../node_modules/cesium/Build/Cesium/Widgets/widgets.css'
// import Cesium from 'cesium/Cesium'
var Cesium = require('cesium/Cesium')
// import 'cesium/Cesium/Widgets/widgets.css'
Vue.config.productionTip = false

Vue.prototype.Cesium = Cesium
/* eslint-disable no-new */
new Vue({
  el: '#app',
  router,
  components: { App },
  template: '<App/>'
})

 

需要注意的是,网上其他文章说的是 import Cesium from 'cesium/Cesium',但我试了不行,发现提示异常

这是因为我下的是cesium1.68版本,新版本不支持整体import,可以用require方式。

 

还有我看网上说

我还没打包不好验证真伪,也有说修改dev配置项的assetsPublicPath,也改成 '' 的,但我没改发现也能运行。

 

参考文章:

https://blog.csdn.net/u011347088/article/details/83090527

https://blog.csdn.net/weizhixiang/article/details/104473856

https://www.jianshu.com/p/248a904dbb34

https://blog.csdn.net/li11122212/article/details/93167685

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值