Vue3+Cesium实现一些基础的可视化功能

前段时间在系统学习了Ceisum后,基于Vue3+TS设计了一个可视化系统,写了一些常见功能,主要分为三大类:

  • 空间数据的交互操作
  • 空间数据分析
  • 粒子系统与三维模型

下面先展示出系统的框架

 空间数据的交互操作

空间要素的绘制及编辑

        功能区如下图所示,可以实现点、线、面等绘制与编辑

点、线、面要素的空间距离量测(贴地非贴地

包括动态距离量测、角度量测、面积量测,量测结果会展示在页面上

空间数据分析

洪水淹没分析

用户首先选择研究区域,圈定一定的范围后,系统会自动计算出该区域的最大最小高度展示在表中,用户可根据实际情况进行修改以及设定洪水的速度,点击开始分析后,进行可视化展示

可视域分析

用户点击可视域分析,选择视点以及视线方向,系统会计算出可视和不可视的部分,在这里使用一系列线条来表示,绿色表示可视部分,红色表示不可视部分。

透视分析

缓冲区分析

三维模型和粒子系统

这两块更多的是使用cesium的库函数来调用,设定一定的参数,最后进行可视化。

包括3DTile数据加载,三维模型静态动态加载,其中需要了解很多API并且进行使用,比如对于静态三维模型数据往往是gltf数据格式

const entity = viewer.entities.add({
    name:'plane',
    position:Cesium.Cartesian3.fromDegrees(102.3187,24.4923,10000),
    model:{
      uri:'../public/static/Cesium/data/gltf/Cesium_Air.glb', // gltf模型 注意是glb文件
      scale:2, //模型本身大小
      minimumPixelSize:128, // 最大的模型像素
      maximumScale:20000, // 最大的模型像素
      runAnimations:true, // 是否显示动画
      clampAnimations:true, // 是否保持最后一帧的动画
      // color:Cesium.Color.RED, // 模型加颜色
      show:true // 是否显示或隐藏
    }
  })
  viewer.trackedEntity = entity // 设置摄像头定位到模型处

那么对于动态数据呢,我们就需要用到与时间位置相关的API, SampledPositionPropert,再添加上轨迹数据,将数组组织成cesium可以处理的CZML数据,那么就可以得到关于卫星等模型的动态可视化,但是卫星要相对而言复杂一些...

而粒子系统就是在动态的基础上使用ceisum的ParticleSystem类,使用其相关的属性和方法进行可视化。

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值