一个简略的 Vue Cli 4 引入 Cesium 的架子,能够间接拉取我的项目,本人扩大。欢送试用,能够 Star 哟!

原文地址:Vue Cli 4 引入 Cesium 配置

Github: https://github.com/martinageradams/vue-cesium-example

Vue 我的项目搭建,我就不展现了。依照官网间接一步一步进行就能够。也不展现 webpack 配置的坑了,依照上面的代码配置,我的项目就能用。

vue.config.js

const CopyWebpackPlugin = require("copy-webpack-plugin");const webpack = require("webpack");module.exports = {  configureWebpack: {    plugins: [      // Copy Cesium Assets, Widgets, and Workers to a static directory      new CopyWebpackPlugin({        patterns: [          { from: "node_modules/cesium/Build/Cesium/Workers", to: "Workers" },          {            from: "node_modules/cesium/Build/Cesium/ThirdParty",            to: "ThirdParty"          },          { from: "node_modules/cesium/Build/Cesium/Assets", to: "Assets" },          { from: "node_modules/cesium/Build/Cesium/Widgets", to: "Widgets" }        ]      }),      new webpack.DefinePlugin({        // Define relative base path in cesium for loading assets        CESIUM_BASE_URL: JSON.stringify("")      })    ],    module: {      // Removes these errors: "Critical dependency: require function is used in a way in which dependencies cannot be statically extracted"      // https://github.com/AnalyticalGraphicsInc/cesium-webpack-example/issues/6      unknownContextCritical: false,      unknownContextRegExp: /\/cesium\/cesium\/Source\/Core\/buildModuleUrl\.js/    }  }};

Map.vue

<template>  <div id="cesiumContainer"></div></template><script>import "cesium/Build/Cesium/Widgets/widgets.css";import * as Cesium from "cesium";export default {  name: "Map",  mounted() {    this.init();  },  methods: {    init() {      let viewer = new Cesium.Viewer("cesiumContainer");      let imageryLayers = viewer.imageryLayers;      let googleMap = new Cesium.UrlTemplateImageryProvider({        url: "http://www.google.com/maps/vt?lyrs=s@716&x={x}&y={y}&z={z}"      });      imageryLayers.addImageryProvider(googleMap);      // fly      viewer.camera.flyTo({        destination: Cesium.Cartesian3.fromDegrees(          114.296063,          30.55245,          20000000        ),        orientation: {          heading: Cesium.Math.toRadians(0),          pitch: Cesium.Math.toRadians(-90),          roll: 0.0        },        duration: 10 // fly time 10s      });    }  }};</script><style lang="scss" scoped>#cesiumContainer {  width: 100vw;  height: 100vh;  margin: 0;  padding: 0;  overflow: hidden;}</style>