VUE_CLI4.5 VUE+Cesium

1、VUE_CLI安装VUE项目

2、安装cesium依赖

npm install cesium

本人目前cesium 版本1.82.1

3、配置vue.config.js

复制代码
/*
 * @Author: your name
 * @Date: 2020-10-30 17:25:40
 * @LastEditTime: 2021-05-19 21:55:07
 * @LastEditors: Please set LastEditors
 * @Description: In User Settings Edit
 * @FilePath: \vue-demo\vue.config.js
 */
const CopyWebpackPlugin = require('copy-webpack-plugin')
const webpack = require('webpack')
const path = require('path')

let cesiumSource = './node_modules/cesium/Source'
let cesiumWorkers = '../Build/Cesium/Workers'


module.exports = {
  // 基本路径  3.6之前的版本时 baseUrl
  publicPath: "./",
  // 输出文件目录
  outputDir: "dist",
  // eslint-loader 是否在保存的时候检查
  lintOnSave: false,
  // webpack-dev-server 相关配置
  devServer: {
    proxy: {
      '/try': {
        target: 'https://www.runoob.com',
        ws: true,
        changeOrigin: true
      },
      '/yuxi_DEM': {
        target: 'http://yxgis2sim.hdec.com',
        ws: true,
        changeOrigin: true
      },
      '/iserver': {
        target: 'http://yxgis2sim.hdec.com',
        ws: true,
        changeOrigin: true
      },
      '/testt': {
        target: 'http://localhost:8081',
        ws: true,
        changeOrigin: true
      },
      // '/ismap-mvt-ShenSeDiTu1231erver': {
      //   target: 'http://gisct.ecidi.com/iserver/services',
      //   ws: true,
      //   changeOrigin: true
      // },
      '/map-mvt-ShenSeDiTu1231': {
        target: 'http://gisct.ecidi.com/iserver/services',
        ws: true,
        changeOrigin: true
      },
      '/yuxiBasemap': {
        target: 'http://yxgis2.hdec.com',
        ws: true,
        changeOrigin: true
      },
      '/geoserver': {
        target: 'http://localhost:8088',
        ws: true,
        changeOrigin: true
      },
      '/UserController': {
        target: 'http://localhost:8080',
        ws: true,
        changeOrigin: true
      }
      // '/foo': {
      //   target: '<other_url>'
      // }
    }
  },
  configureWebpack: {
    output: {
      sourcePrefix: ' '
    },
    amd: {
      toUrlUndefined: true
    },
    resolve: {
      alias: {
        'vue$': 'vue/dist/vue.esm.js',
        '@': path.resolve('src'),
        'cesium': path.resolve(__dirname, cesiumSource)
      }
    },
    plugins: [
      new CopyWebpackPlugin([{ from: path.join(cesiumSource, cesiumWorkers), to: 'Workers' }]),
      new CopyWebpackPlugin([{ from: path.join(cesiumSource, 'Assets'), to: 'Assets' }]),
      new CopyWebpackPlugin([{ from: path.join(cesiumSource, 'Widgets'), to: 'Widgets' }]),
      new CopyWebpackPlugin([{ from: path.join(cesiumSource, 'ThirdParty/Workers'), to: 'ThirdParty/Workers' }]),
      new webpack.DefinePlugin({
        CESIUM_BASE_URL: JSON.stringify('./')
      })
    ],
    module: {
      unknownContextCritical: /^.\/.*$/,
      unknownContextCritical: false
    }
  }
}
复制代码

4、配置main.js全局引入cesium相关文件

复制代码
import Vue from "vue";
import App from "./App.vue";
import router from "./router";
import store from "./store";
import "./plugins/element.js";
 
Vue.config.productionTip = false;
 
//引入cesium相关文件
var cesium = require('cesium/Cesium');
var widgets= require('cesium/Widgets/widgets.css');
 
Vue.prototype.cesium = cesium
Vue.prototype.widgets = widgets
 
new Vue({
  router,
  store,
  render: h => h(App)
}).$mount("#app");
复制代码

5、修改Hone.vue

复制代码
<template>
  <div id="container" class="box">
    <div id="cesiumContainer"></div>
  </div>
</template>
 
<script>
export default {
  name: 'Home',
  mounted(){
    this.init()
  },
  methods: {
    init() {
      let Cesium = this.cesium
      let viewer = new Cesium.Viewer('cesiumContainer');
      viewer._cesiumWidget._creditContainer.style.display = "none";// 隐藏版权
    }
  }
};
</script>
 
<style lang='scss' scoped>
html,
body,
#cesiumContainer {
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  overflow: hidden;
}
.box {
  height: 100%;
} 
</style>
复制代码

 

posted @   羊大葱  阅读(1880)  评论(1编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
历史上的今天:
2018-06-23 webpack4的迁移
点击右上角即可分享
微信分享提示