Cesium:OSGB倾斜摄影模型加载卡顿优化

    基于Vue2+Cesium.js搭建的三维地理数据可视化项目,遇到的问题为:Cesium加载OSGB倾斜摄影模型时,tileset.json文件的并发请求高,堆内存总大小严重飙升(约4G)、Google Chrome占用内存高(约3~4个G)、页面卡顿极其严重。更令人崩溃的是,未等页面全部渲染完毕,Google Chrome浏览器就已经崩溃,更不要说通过鼠标进行页面交互了。以下给出笔者对于此种问题的解决方案。

Vue数据劫持问题与优化策略

    Vue框架利用Object.defineProperty()这个方法来实现了数据的监听和修改,也达到了很好的模块间解耦效果。但是,这种特性用在整合Cesium.js框架,在地图组件初始化时劫持Cesium.Viewer对象,在页面渲染和三维场景交互期间,所表现出现的性能似乎并不是十分友好,在三维场景中数据量较大的情况下,很容易引起页面卡顿、甚至崩溃(堆内存有飙升到好几个G的)。
    假如Ceisum球初始化之后将viewer与vue中的data或者computed进行了绑定,那么就会导致vue对viewer进行了数据劫持。数据劫持的情况表现在viewer 或者viewer.scene 为 observer对象,应当尽量避免这种情况。
    一个解决方案就是将Cesium.Viewer对象挂载到window对象上,这样就可以阻断Vue的数据劫持。

iframe并行加载三维场景

    为避免Cesium.Viewer重复初始化,通常的做法是只提供一个地图组件,让Cesium.Viewer对象只创建一次。即:在WebApp的整个运行

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是席木木啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值