安装 vue3
npm i -g @vue/clivue -V / vue --version//如果已经安装vue2 需要先卸载,再进行vue3的安装
创建项目
vue create proNamecd proNamenpm run serve //可以在 package.json文件中,scripts 中新增 start// 如果需要创建vue2版本的项目需要 安装// npm install -g @vue/cli-init// vue init webpack proName
安装cesium 依赖
npm i cesium --save
在项目根目录新增配置文件 vue.config.js,如下
const CopyWebpackPlugin = require('copy-webpack-plugin')const webpack = require('webpack')const path = require('path')const debug = process.env.NODE_ENV !== 'production'let cesiumSource = './node_modules/cesium/Source'let cesiumWorkers = '../Build/Cesium/Workers'module.exports = { baseUrl: '', devServer: { port: 8090 //修改服务端口号 }, outputDir: 'docs', //设置 build 输出目录 configureWebpack: { output: { sourcePrefix: ' ' }, amd: { toUrlUndefined: true }, resolve: { alias: { 'vue$': 'vue/dist/vue.esm.js', '@': path.resolve('src'), 'cesium': path.resolve(__dirname, cesiumSource) } }, plugins: [ new CopyWebpackPlugin([ { from: path.join(cesiumSource, cesiumWorkers), to: 'Workers'}]), new CopyWebpackPlugin([ { from: path.join(cesiumSource, 'Assets'), to: 'Assets'}]), new CopyWebpackPlugin([ { from: path.join(cesiumSource, 'Widgets'), to: 'Widgets'}]), new CopyWebpackPlugin([ { from: path.join(cesiumSource, 'ThirdParty/Workers'), to: 'ThirdParty/Workers'}]), new webpack.DefinePlugin({ CESIUM_BASE_URL: JSON.stringify('./') }) ], module: { unknownContextCritical: /^.\/.*$/, unknownContextCritical: false } }}
main.js 中新增引用
import Cesium from 'cesium/Cesium' //from 中 cesium 指向的是vue.config.js中 alias对象中的别名// noinspection ES6UnusedImportsimport widget from 'cesium/Widgets/widgets.css'
6 . 初始化配置参数说明
animation: false, //是否创建动画小器件,左下角仪表 baseLayerPicker: false, //是否显示图层选择器 fullscreenButton: false, //是否显示全屏按钮 geocoder: false, //是否显示geocoder小器件,右上角查询按钮 homeButton: false, //是否显示Home按钮 infoBox: false, //是否显示信息框 sceneModePicker: false, //是否显示3D/2D选择器 selectionIndicator: false, //是否显示选取指示器组件 timeline: false, //是否显示时间轴 sceneMode: Cesium.SceneMode.SCENE3D, //设定3维地图的默认场景模式:Cesium.SceneMode.SCENE2D、Cesium.SceneMode.SCENE3D、Cesium.SceneMode.MORPHING navigationHelpButton: false, //是否显示右上角的帮助按钮 scene3DOnly: true, //如果设置为true,则所有几何图形以3D模式绘制以节约GPU资源 navigationInstructionsInitiallyVisible: false, showRenderLoopErrors: false //是否显示渲染错误 //设置背景透明 orderIndependentTranslucency:false contextOptions:{ webgl:{ alpha:true } }
7. 隐藏logo
//方式一this.viewer._cesiumWidget._creditContainer.style.display = "none";//方式二 css.cesium-widget-credits { display: none !important; visibility: hide !important;}
8. 自定义logo
var mapDom = document.getElementById("cesiumContainer"); var viewportQuad = new Cesium.ViewportQuad(); viewportQuad.rectangle = new Cesium.BoundingRectangle( mapDom.clientWidth - 85, 5, 80, 80 ); this.viewer.scene.primitives.add(viewportQuad); viewportQuad.material = new Cesium.Material({ fabric: { type: "Image", uniforms: { color: new Cesium.Color(1.0, 1.0, 1.0, 1.0), image: "图片路径" } } }); }