美文网首页Cesium开源
Vue3.0引入Cesium源码

Vue3.0引入Cesium源码

作者: 写前端的大叔 | 来源:发表于2021-04-13 22:08 被阅读0次

    由于要对Cesium进行定制化开发,需要修改里面的源码,所以就不能使用npm的方式进行安装。需要直接引入源码的方式。其引入方式跟npm的方式差不多,只需要下载源码,修改一下配置文件既可。

    1 下载源码

    直接从官网下载源码,我这里下载的是最新的版本1.8.0

    2 初始化Vue项目

    使用Vue脚手架项目创建一个空项目。

    3 引入源码

    创建好项目后,将源码目录下的SourceThirdParty复制到src目录下的Cesium目录中。

    4 修改配置文件

    在项目的根目录下,创建一个vue.config.js,然后将下面的代码复制到配置文件中。其作用主要是将WorkersAssetsWidgetsThirdParty的目录复制到指定的CESIUM_BASE_URL目录中,便于源码中找到对应的文件。

    const CopyWebpackPlugin = require("copy-webpack-plugin");
    const webpack = require("webpack");
    module.exports = {
        configureWebpack: {
            plugins: [
                //copy-webpack-plugin 5.x 的写法
                new CopyWebpackPlugin([{
                    from: "src/Cesium/Source/Workers",
                    to: 'cesium/Workers'
                }]),
                new CopyWebpackPlugin([{
                    from: "src/Cesium/Source/Assets",
                    to: 'cesium/Assets'
                }]),
                new CopyWebpackPlugin([{
                    from: "src/Cesium/Source/Widgets",
                    to: 'cesium/Widgets'
                }]),
                new CopyWebpackPlugin([{
                    from: "src/Cesium/ThirdParty",
                    to: 'cesium/ThirdParty'
                }]),
    
                new webpack.DefinePlugin({
                    CESIUM_BASE_URL: JSON.stringify("./cesium")
                })
            ],
            module: {
                unknownContextCritical: false,
                unknownContextRegExp: /\/cesium\/cesium\/Source\/Core\/buildModuleUrl\.js/
            }
        },
    }
    

    5 引入代码

    main.js文件中,引用cssCesium类并要设置accessToken

    import * as Cesium from './Cesium/Source/Cesium';
    import './Cesium/Source/Widgets/widgets.css'
    

    也可以将其挂载到全局变量上。

    const app = createApp(App);
    app.use(store).use(router).mount('#app');
    app.config.globalProperties.$Cesium = Cesium;
    Cesium.Ion.defaultAccessToken='你的accessToken'
    

    6创建地图

    vue文件中引用Cesium进行创建地图,具体代码如下所示:

    <template>
      <div class="home">
        <div id="map"></div>
      </div>
    </template>
    
    <script>
      import {getCurrentInstance, onMounted} from  'vue';
    export default {
        name: 'Home',
        components: {
    
        },
        setup(){
            const {ctx } = getCurrentInstance();
            const Cesium = ctx.$Cesium;
            const initMap = ()=>{
                let viewer = new Cesium.Viewer('map',{
                });
                viewer.camera.flyTo({
                    destination : Cesium.Cartesian3.fromDegrees(112.4175, 23.655, 400),
                    orientation : {
                        heading : Cesium.Math.toRadians(0.0),
                        pitch : Cesium.Math.toRadians(-15.0),
                    }
                });
            };
            onMounted(() => {
                initMap();
            })
        }
    }
    </script>
    <style scoped>
      .home,#map{
        height: 100%;
        width: 100%;
      }
    </style>
    
    

    引入源码方式基本就这几个步骤,以后会不定期的分享Cesium相关的文档,将利用业余时间开发一个二三维一体的webgis平台。

    相关文章

      网友评论

        本文标题:Vue3.0引入Cesium源码

        本文链接:https://www.haomeiwen.com/subject/ozchlltx.html