vue项目引入cesium(不使用webpack)

由于对webpack不熟悉,按照网上教程走,使用webpack引入项目直接卡死。前前后后花了3天功夫,踩了很多坑,终于在不用webpack的情况下跑起来了。

先看下我的项目结构,后面要提到

1.下载cesium

npm install cesium  --registry=https://registry.npm.taobao.org

2.拷贝cesium

把node_modules/cesium拷贝到public中。

3.引入文件

 在public/index.html的head标签里引入cesium文件。注意!!千万记住,路径不要写成./Cesium/xxxx,不要在路径前加点,我就是在这被坑死了。 (因为我们cesium文件放在public下面,静态文件访问的地址是http://localhost/Cesium/xxxx,如果引入cesium的页面地址是多了层级,如http://localhost/abc/,加了路径前加了点后,最后获取cesium的地址会变成http://localhost/abc/Cesium/xxxx,是获取不到静态文件的,最后的结果就是又cesium框架显示,但是里面没有地球)

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

 4.vue引入

最后一步,也是最重要的一步,好几次走到这里,因为加载不出地图,以为直接引入出了问题,反反复复弄了很多次。

一定要在mounted方法里初始化cesium,不能在created里初始化,因为这个时候vue还没编译成DOM,js没办法通过id找到div容器。

还要注意要把viewer对象挂在window下面,挂在this下vue会数据劫持。

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

<script>
export default {
  name: "index",
  mounted() {
    this.initView() //一定要在mounted方法里初始化cesium
  },
  data() {
    return {
      viewer: undefined
    };
  },
  methods: {
    initView(){
      Cesium.Ion.defaultAccessToken = '自己ceisum的token';
      window.viewer = new Cesium.Viewer('cesiumContainer')
    }, 

  }
}
</script>

 ps 获取cesium的token,自己到cesium的官网注册一下(https://cesium.com/),然后创建项目获取token。具体可以自己到网上查一下。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值