赣州地图-新版mars3d
public | 2 years ago | ||
src | 2 years ago | ||
.editorconfig | 2 years ago | ||
.env | 2 years ago | ||
.gitignore | 2 years ago | ||
.prettierrc | 2 years ago | ||
LICENSE | 2 years ago | ||
README.md | 2 years ago | ||
README_EN.md | 2 years ago | ||
babel.config.js | 2 years ago | ||
jsconfig.json | 2 years ago | ||
package.json | 2 years ago | ||
vue.config.js | 2 years ago |
基于Vue2.x + VueCli4.x技术栈的 Mars3D🌎最简项目模板
npm install
或 cnpm install
npm run serve
运行后访问:http://localhost:3001/
运行npm run build
来构建项目。
npm install mars3d //或 cnpm install mars3d 或 yarn add mars3d
场景配置文件:
public\config\config.json
组件定义文件:
src\components\mars3d\Map.vue
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') }]) ], }
如果您在上面第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
如果您在上面第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
import Map from '../components/mars3d/Map.vue' ```
- 检查webpack和copy-webpack-plugin版本兼容问题
- 检查webpack和copy-webpack-plugin与node、npm的版本兼容问题
Mars3D平台
是火星科技研发的一款基于 WebGL 技术实现的三维客户端开发平台,基于Cesium优化提升与B/S架构设计,支持多行业扩展的轻量级高效能GIS开发平台,能够免安装、无插件地在浏览器中高效运行,并可快速接入与使用多种GIS数据和三维模型,呈现三维空间的可视化,完成平台在不同行业的灵活应用。Mars3D平台可用于构建无插件、跨操作系统、 跨浏览器的三维 GIS 应用程序。平台使用 WebGL 来进行硬件加速图形化,跨平台、跨浏览器来实现真正的动态大数据三维可视化。通过 Mars3D产品可快速实现浏览器和移动端上美观、流畅的三维地图呈现与空间分析。
Mars3D官网:http://mars3d.cn
Mars3D开源项目列表:https://github.com/marsgis/mars3d