6 Star 39 Fork 33

火星科技 / mars3d-vue-template

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
README.md 6.89 KB
一键复制 编辑 原始数据 按行查看 历史
木遥 提交于 2023-04-06 10:23 . 修改文件名

基于Vue2.x + VueCli4.x技术栈的 Mars3D🌎最简项目模板

GitHub stars Npm downloads Npm version

English |中文

运行命令

首次运行前安装依赖

npm installcnpm install

http运行项目

npm run serve 运行后访问:http://localhost:3001/

打包编译项目

运行npm run build来构建项目。

运行效果

在线体验

如何集成到自己已有的项目中

  1. 安装mars3d依赖包

npm install mars3d   //或  cnpm install mars3d   或  yarn add mars3d
  1. 拷贝文件

场景配置文件:public\config\config.json

组件定义文件:src\components\mars-work\mars-map.vue

  1. 配置vue.config.js

npm install copy-webpack-plugin -save --dev
// vue.config.js 添加下面配置 
const CopyWebpackPlugin = require('copy-webpack-plugin')  

module.exports = {
  configureWebpack: config => { 
    let cesiumSourcePath = 'node_modules/mars3d-cesium/Build/Cesium/' //cesium库目录
    let cesiumRunPath = config.output.publicPath || './cesium/' //cesium运行时主目录
    let plugins = [
      //标识cesium资源所在的主目录,cesium内部资源加载、多线程等处理时需要用到
      new webpack.DefinePlugin({
        CESIUM_BASE_URL: JSON.stringify(cesiumRunPath)
      }),
      //cesium相关资源目录需要拷贝到系统目录下面
      new CopyWebpackPlugin([{ from: path.join(cesiumSourcePath, 'Workers'), to: path.join(cesiumRunPath, 'Workers') }]),
      new CopyWebpackPlugin([{ from: path.join(cesiumSourcePath, 'Assets'), to: path.join(cesiumRunPath, 'Assets') }]),
      new CopyWebpackPlugin([{ from: path.join(cesiumSourcePath, 'ThirdParty'), to: path.join(cesiumRunPath, 'ThirdParty') }]),
      new CopyWebpackPlugin([{ from: path.join(cesiumSourcePath, 'Widgets'), to: path.join(cesiumRunPath, 'Widgets') }])
    ]
    return {
      plugins: plugins
    }
  },
  //已忽略其他配置
}

或参考webpack.config.js写法进行修改

// webpack.config.js  
const path = require('path')
const webpack = require('webpack')
const CopyWebpackPlugin = require('copy-webpack-plugin')

const cesiumSourcePath = 'node_modules/mars3d-cesium/Build/Cesium/' //cesium库目录
let cesiumRunPath = './cesium/'//cesium运行时主目录

module.exports = {
  plugins: [
      //标识cesium资源所在的主目录,cesium内部资源加载、多线程等处理时需要用到
      new webpack.DefinePlugin({
        CESIUM_BASE_URL: JSON.stringify(cesiumRunPath)
      }),
      //cesium相关资源目录需要拷贝到系统目录下面
      new CopyWebpackPlugin([{ from: path.join(cesiumSourcePath, 'Workers'), to: path.join(cesiumRunPath, 'Workers') }]),
      new CopyWebpackPlugin([{ from: path.join(cesiumSourcePath, 'Assets'), to: path.join(cesiumRunPath, 'Assets') }]),
      new CopyWebpackPlugin([{ from: path.join(cesiumSourcePath, 'ThirdParty'), to: path.join(cesiumRunPath, 'ThirdParty') }]),
      new CopyWebpackPlugin([{ from: path.join(cesiumSourcePath, 'Widgets'), to: path.join(cesiumRunPath, 'Widgets') }])
  ],
}

不配置vue.config.js时,直接引入CDN的Cesium库

如果您在上面第3步骤集成中遇到各种奇怪问题无法解决,大部分是vue.config的配置问题时。 修改public\index.html中的下面注释

<link href="https://unpkg.com/mars3d-cesium/Build/Cesium/Widgets/widgets.css" rel="stylesheet"   type="text/css" />
<script src="https://unpkg.com/mars3d-cesium/Build/Cesium/Cesium.js"  type="text/javascript"></script>
<script src="https://unpkg.com/@turf/turf/turf.min.js" type="text/javascript" ></script>

项目中提供了快捷配置的环境变量,VUE_APP_MARS3D_SOURCE=cdn

不配置vue.config.js时,直接引入外部Cesium库

如果您在上面第3步骤集成中遇到各种奇怪问题无法解决,大部分是vue.config的配置问题时。 可以直接在html中使用script引入的Cesium库 ,该方式不需要修改 vue.config
从官网下载的SDK中拷贝Cesium放在public\lib\Cesium\下,并取消public\index.html中的下面注释

<script type="text/javascript" >
  window.CESIUM_BASE_URL ="<%= BASE_URL %>lib/Cesium/"
</script>
<link rel="stylesheet" href="<%= BASE_URL %>lib/Cesium/Widgets/widgets.css">
<script type="text/javascript" src="<%= BASE_URL %>lib/Cesium/Cesium.js"></script>

项目中提供了快捷配置的环境变量,VUE_APP_MARS3D_SOURCE=local

  1. 创建地球

参考 src\views\Index.vue文件引入Map组件和构造创建地球,主要关注下下面代码处

<Map :url="configUrl" @onload="onMapload" />

import Map from '../components/mars-work/mars-map.vue'
  1. 常见问题

运行报错时,请检查相关版本是否有冲突,比如webpack 4.43.0与copy-webpack-plugin 7.0.0 会出问题

  1. 检查webpack和copy-webpack-plugin版本兼容问题
  2. 检查webpack和copy-webpack-plugin与node、npm的版本兼容问题

Mars3D 是什么

Mars3D平台火星科技研发的一款基于 WebGL 技术实现的三维客户端开发平台,基于Cesium优化提升与B/S架构设计,支持多行业扩展的轻量级高效能GIS开发平台,能够免安装、无插件地在浏览器中高效运行,并可快速接入与使用多种GIS数据和三维模型,呈现三维空间的可视化,完成平台在不同行业的灵活应用。

Mars3D平台可用于构建无插件、跨操作系统、 跨浏览器的三维 GIS 应用程序。平台使用 WebGL 来进行硬件加速图形化,跨平台、跨浏览器来实现真正的动态大数据三维可视化。通过 Mars3D产品可快速实现浏览器和移动端上美观、流畅的三维地图呈现与空间分析。

相关网站

版权说明

  1. Mars3D平台由火星科技自主研发,拥有所有权利。
  2. 任何个人或组织可以在遵守相关要求下可以免费无限制使用。
JavaScript
1
https://gitee.com/marsgis/mars3d-vue-template.git
git@gitee.com:marsgis/mars3d-vue-template.git
marsgis
mars3d-vue-template
mars3d-vue-template
master

搜索帮助