浅谈cesium在vue2中的使用---踩坑日记(一)
vue2+cesium,我的踩坑记录
许久不见,我又诈尸更博了。最近刚刚忙完项目,继续研究cesium,为以后做准备。也遇到了好多好多的坑,查了很多资料,好在最终是解决了。
在此分享下我的经验,顺便记录一下下。
使用步骤
一. 搭建vue环境
参照官网方法进行安装,就不进行过多的叙述了。
vue官网传送门
二.cesium的安装使用
1.cd 到你的项目根目录下,打开命令行,输入 npm install cesium --save
进行安装cesium的依赖
然后运行npm install cesium@1.61.0 --save
安装cesium 1.61的版本。目前为,官网最新的版本是1.77,由于我在使用的时候,遇到了版本冲突等问题, 然后选择了比较稳定的1.61版本。
2.修改build/webpack.base.conf.js文件
2.1添加如下代码
const cesiumSource = '../node_modules/cesium/Source'
2.2分别添加如下代码
unknownContextCritical: false 在module中加入
amd: {toUrlUndefined: true
},
sourcePrefix: ' '
'cesium': path.resolve(__dirname, cesiumSource) 注: __dirname 是两个小下划线
3.修改build/webpack.prod.conf.js 文件
3.1添加两行代码
const cesiumSource = 'node_modules/cesium/Source'
const cesiumWorkers = '../Build/Cesium/Workers'
3.2在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 webpack.DefinePlugin({CESIUM_BASE_URL: JSON.stringify('./')})
4.修改config/index.js 文件
把 assetsPublicPath的值设置为空
======================================重点!!!敲黑板,记下来
三. 一般到这,就进入我们熟悉的在,main.js引入cesium,然后初始化,开始开发。但是这样,问题就来了。
解决问题的方法如下:
首先到 node_modules/cesium/Build/Cesium 文件,可以看到里面还有四个文件夹和Cesiumjs
然后把Cesium一起复制到 根目录的 static文件夹里
mainjs中不需要手动导入任何文件,默认就好,然后打开index.html,用script标签去引入cesiumjs
然后随便打开一个vue组件,就可以按照官网的用例开始使用了。附上我的代码
注:最开始的那一串字符串如果不加,可能会报401的错误。
Cesium.Ion.defaultAccessToken ="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI1NWI5MGUzNi1mYWI3LTQzY2QtOGI0Ni0xZWYyNTAxNGM4N2MiLCJpZCI6MTI1OTgsInNjb3BlcyI6WyJhc3IiLCJnYyJdLCJpYXQiOjE1NjE0NDkyNTV9.hBH0PGSnKErc_yNhIePASUkr3QPDoo0KDX9uLpNBUns";
然后我们 npm run dev/npm run serve 启用项目。如果不出意外会报错
../../static/Cesium/SampleData/models/CesiumMan/Cesium_Man.glb 404
这是因为依赖中本没有 moudel 模块,为了解决这个问题,我下载了cesium的包,然后在 Apps把SampleData文件夹复制到Cesium的文件夹里。
最后附上我cesium包的链接(虽然是1.44版本的,但是不影响模块的使用)
网盘链接 提取码 chix。
我就是我全网最菜的前端,有缘下次见。
浅谈cesium在vue2中的使用---踩坑日记(一)相关推荐
- ReactNative 在丁香医生项目中引入的踩坑日记
ReactNative 在丁香医生项目中引入的踩坑日记 this没绑定到函数导致空指针 参考 React-Native 踩坑第二弹-undefined is not a function(evalua ...
- Vue中video.js踩坑日记 单页切换后视频无法播放
使用video.js踩坑.单页切换后视频无法播放 切换页面以后正常显示效果 但是我切换路由返回上一层或者点击跳转下个页面的返回的时候就不显示了?? 解决思路 在生命周期beforeDestroy函数中 ...
- python语法中infile语句_浅谈pymysql查询语句中带有in时传递参数的问题
直接给出例子说明: cs = conn.cursor() img_ids = [1,2,3] sql = "select img_url from img_url_table where i ...
- 计算机技术在农业上应用论文,浅谈计算机在农业中的应用论文(2)
浅谈计算机在农业中的应用论文篇二 <计算机技术在农业管理中的科学应用> 摘要:文章依据现代农业管理思想的内涵结合计算机应用技术的充分优势展开了如何在农业管理中全面应用计算机技术实现数字化. ...
- 浅谈线程池(中):独立线程池的作用及IO线程池
在上一篇文章中,我们简单讨论了线程池的作用,以及CLR线程池的一些特性.不过关于线程池的基本概念还没有结束,这次我们再来补充一些必要的信息,有助于我们在程序中选择合适的使用方式. 独立线程池 上次我们 ...
- php编码 js解码,浅谈php和js中json的编码和解码
php中 1)编码 $jsonstr = json_encode($array) 2)解码 $arr = json_decode($jsonstr) echo json_encode("中文 ...
- python查询数据库带逗号_浅谈pymysql查询语句中带有in时传递参数的问题
直接给出例子说明: cs = conn.cursor() img_ids = [1,2,3] sql = "select img_url from img_url_table where i ...
- 谈计算机知识对学生的作用,浅谈计算机在教学中的作用
浅谈计算机在教学中的作用 时间:2017-07-19 08:54:57 浅谈计算机在教学中的作用 计算机基础教育的教学目标是使学生掌握计算机的基本知识和操作技能,把计算机作为获取和交流信息的工具,为学 ...
- 浅谈surging服务引擎中的rabbitmq组件和容器化部署
1.前言 上个星期完成了surging 的0.9.0.1 更新工作,此版本通过nuget下载引擎组件,下载后,无需通过代码build集成,引擎会通过Sidecar模式自动扫描装配异构组件来构建服务引擎 ...
最新文章
- python中集合的元素可以是任意数据类型_Python之基本数据类型——集合数据类型...
- VC++技术内幕(三)
- CVPR 2020 oral 首次提出VPSnet用于分割界新问题-视频全景分割
- Python中docstring文档的写法
- win7上安装wince6.0
- TailwindCSS v3.0 正式发布!一大波新特性来袭!
- plsql查询乱码问题解决
- canvas 实现雷达图
- 编译ffmpeg没有生成编译后ffplay
- 安装并启动Tomcat 8(mac版本)
- EasyExecl导出模板,实现动态下拉列
- 【纹理映射】球面坐标、直角坐标系、纹理空间坐标系的转换
- 猝死理赔年轻化,恶性肿瘤仍为头号健康“杀手”
- UI设计培训之用户画像-带你认清的你的用户
- ★【STL】报表统计
- R语言逻辑运算符(Logical Operators,大于、小于、等于、不等于、与或非、是否为真)、R语言逻辑运算符(Logical Operators)实战示例
- GPS从入门到放弃(八) --- GPS卫星速度解算
- Druid连接池参考配置和说明
- Echarts通用饼图、柱状图、折线图封装
- Android Camera2 CameraCharacteristics Key 详细解说