electron-vue 中使用Cesium

使用cesium源码方式

实现思路:参照cesium的webpack 配置方法

  • package.json 中引用Cesium
  • 在webpack.renderer.config.js 添加如下配置
// Cesium源码所在目录
const cesiumSource = '../node_modules/cesium/Source'
const cesiumSource2 = './node_modules/cesium/Source'
const cesiumWorkers = '../Build/Cesium/Workers'
  • 再增加一些配置项
  output: {
        filename: '[name].js',
        path: path.resolve(__dirname, 'dist'),
        //需要编译Cesium中的多行字符串 
        sourcePrefix: ''
    },
    amd: {
        //允许Cesium兼容 webpack的require方式 
        toUrlUndefined: true
    },
    node: {
        // 解决fs模块的问题(Resolve node module use of fs)
        fs: 'empty'
    },
  • 增加一个 cesium 别名(alias) ,我们就很容易的在项目里引用,就像一个传统的Node 模块
 resolve: {
        alias: {
            // Cesium模块名称
            cesium: path.resolve(__dirname, cesiumSource)
        }
    },
  • 在 rendererConfig.plugins.push 中添加如下配置,在development(!production) 环境下添加如下
  // 拷贝Cesium 资源、控价、web worker到静态目录
    new CopyWebpackPlugin([{ from: path.join(cesiumSource2, cesiumWorkers), to: 'Workers' }]),
    new CopyWebpackPlugin([{ from: path.join(cesiumSource2, 'Assets'), to: 'Assets' }]),
    new CopyWebpackPlugin([{ from: path.join(cesiumSource2, 'Widgets'), to: 'Widgets' }]),
    new webpack.DefinePlugin({
      //Cesium载入静态的资源的相对路径
      CESIUM_BASE_URL: JSON.stringify('')
    })

在production 环境下,CESIUM_BASE_URL修改为如下

  //Cesium载入静态的资源的相对路径
  CESIUM_BASE_URL: JSON.stringify('./')
  • 具体使用 ,
import Cesium from 'cesium/Cesium';
//导入必须的样式表
require('cesium/Widgets/widgets.css');

  • 打包后调试
    在主进程中的src/main/index.js中添加mainWindow.openDevTools();可以在打包后显示F12调试工具

使用打包后的cesium,放在static 目录下

cesium 放在static 目录下在打包后不能使用,是因为打包后static目录发生了变化,重新指定打包后的static目录即可。
App.vue中的mounted添加如下代码,动态引入cesium的js和css文件即可。

   let cssUlr="",jsUrl="";
    if (process.env.NODE_ENV === "production ") {
       cssUlr=__static + "/Cesium/Widgets/widgets.css";
        jsUrl=__static + "/Cesium/Cesium.js";
    }else{
        cssUlr="static/Cesium/Widgets/widgets.css";
        jsUrl="static/Cesium/Cesium.js";
    }

    const head = document.getElementsByTagName('head')[0];
    const link = document.createElement('link');
    link.type = 'text/css';
    link.rel = 'stylesheet';
    link.href = cssUlr;
    head.appendChild(link);

    const script = document.createElement("script");
    script.type = "text/javascript";
    script.src = jsUrl;
    head.appendChild(script);
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值