IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> Vue2项目引入mard3D -> 正文阅读

[JavaScript知识库]Vue2项目引入mard3D

1.获取 Mars3D 从 npm 获取
使用Node环境下的现代web前端技术栈时,可以使用npm或cnpm或yarn等方式来安装mars3d包

//安装mars3d主库
npm install mars3d --save   

//安装mars3d插件(按需安装)
npm install mars3d-space --save

2.在main.js引入Mars3D类库
使用Node环境下的现代web前端技术栈时,可以使用npm等来安装mars3d包并import导入后来使用。

import Vue from 'vue'
import App from './App.vue'
//在main.js中加入下面代码
import 'mars3d/dist/mars3d.css'
import * as mars3d from 'mars3d'
 
//导入mars3d插件(按需使用,需要先npm install)
import 'mars3d-space'

//可以绑定下vue原型链,可以全局使用
Vue.prototype.mars3d = mars3d;

//在具体使用的vue等文件中
//直接使用 this.mars3d 进行相关调用。
window.mars3d= mars3d
Vue.config.productionTip = false

new Vue({
  render: h => h(App),
}).$mount('#app')

3.安装copy-webpack-plugin

因为mars3d所依赖的Cesium是一个多文件资源的js库,需要对其依赖的一些资源文件进行拷贝处理(这也是容易出问题的地方), 下面已Webpack技术栈为例,vue等其他技术栈类似(可以参考项目模板说明处理。
这里指定5.0版本,因为高于这个版本会报错

npm install copy-webpack-plugin@5.0.0 -save --dev

4.修改项目配置 vue.config.js,如建项目时没有这个文件,可在项目根目录新建,配置文件配置方法代码如下:


// webpack.config.js  或 vue.config.js
const path = require('path')
const webpack = require('webpack')
const CopyWebpackPlugin = require('copy-webpack-plugin')
const cesiumSource = 'node_modules/mars3d-cesium/Build/Cesium/'

module.exports = {
    publicPath: './',
    outputDir: 'dist',
    assetsDir: './static',
    productionSourceMap: false,
    lintOnSave: false,
    configureWebpack: {
        plugins: [
            new webpack.DefinePlugin({
                CESIUM_BASE_URL: JSON.stringify('static')
            }),

            //vue3 start---------------------------------------------------------------------------------
           /* new CopyWebpackPlugin({
                patterns: [{ from: path.join(cesiumSource,'Workers'), to: 'static/Workers' }]
            }),
            new CopyWebpackPlugin({
                patterns: [{ from: path.join(cesiumSource,'Assets'), to: 'static/Assets' }]
            }),
            new CopyWebpackPlugin({
                patterns: [{ from: path.join(cesiumSource,'ThirdParty'), to: 'static/ThirdParty' }]
            }),
            new CopyWebpackPlugin({
                patterns: [{ from: path.join(cesiumSource,'Widgets'), to: 'static/Widgets' }]
            }) */
            //vue3 end-----------------------------------------------------------------------------------

            //vue2 start---------------------------------------------------------------------------------
            new CopyWebpackPlugin([{ from: path.join(cesiumSource,'Workers'), to: 'static/Workers' }]),
            new CopyWebpackPlugin([{ from: path.join(cesiumSource,'Assets'), to: 'static/Assets' }]),
            new CopyWebpackPlugin([{ from: path.join(cesiumSource,'ThirdParty'), to: 'static/ThirdParty' }]),
            new CopyWebpackPlugin([{ from: path.join(cesiumSource,'Widgets'), to: 'static/Widgets' }])
            //vue2 end-----------------------------------------------------------------------------------
        ]
    },
  /*  devServer: {
        port: 8081,
        open: true,
        proxy:  {
        //可以配置多个,(如果要同时请求第三方和后台服务器,可以配置多个,分别代理)
            '/proxy': {
                'target': 'http://localhost:8080/', //第三方接口地址
                'secure': true, // false为http访问,true为https访问
                'changeOrigin': true, // 跨域访问设置,true代表跨域
                'pathRewrite': { // 路径改写规则
                    '^/proxy': '/' // 以/proxy/为开头的改写为'/'             
                }
            }
        }
    } */
}

5.新建div容器并使用mars3d.Map方法创建地球(这里为了方便演示我直接写在App.vue里)

<template>
  <div id="app">
    地图
    <div id="mars3dContainer" class="mars3d-container"></div>
 
    <!-- <img alt="Vue logo" src="./assets/logo.png">
    <HelloWorld msg="Welcome to Your Vue.js App"/> -->
  </div>
</template>
 
<script>
// import HelloWorld from './components/HelloWorld.vue'
 
export default {
  name: "App",
  methods: {
    init() {
      var mapOptions = {
        basemaps: [{ name: "天地图", type: "tdt", layer: "img_d", show: true }],
      };
      var map = new mars3d.Map("mars3dContainer", mapOptions);
    },
  },
  mounted() {
    this.init();
  },
};
</script>

<style>
 #mars3dContainer{
   height: 1000px;
 }
</style>

7.npm run serve 运行项目实例,即可出现一个白色地球,地图的各种样式在上面的init()方法中自行创建

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-06-06 17:16:21  更:2022-06-06 17:16:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 16:28:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码