CesiumJS开发工具包

3 篇文章 0 订阅
2 篇文章 0 订阅

WebGL近几年越来越被人们所关注,但是二三维开发难度也比普通web要高出许多,不管我们是在在开发或者是学习过程中,往往需要耗费大量的时间去查阅资料和研究官方案例;让本来就非常紧张的而宝贵的精力卷到了不关紧要的地方

而大多二三维的包(openlayersjs,cesiumjs、threejs)都是外国的,如果英语水平好还行,否则读起来真是连蒙带猜甚是难受;正式因为经历过所以结合自身经验和网络资料整理了一套cesium相关案例的开发包,供大家参考,希望对各路小伙伴有所帮助。


废话不多说,卷起来😅。


一、源码目录

├── public # 静态资源
│ ├── config.js # 配置文件
| └── favicon.ico # favicon 图标
├── src # 源代码
| ├── utils  # api 请求
| ├── utils # 工具目录
| | ├── cesiumPluginsExtends # cesium_dev_kit工具包
| |  |	 ├──libs # 工具包组件模块
| |  |	 |  ├──plot.js # 标会模块
| |  |	 |  ├──radar.js #  相控雷达模块
| |  |	 |  ├──cesium-plugin.js # 三方插件模块
| |  |	 |  ├──Base.js #  公共基础模块
| |  |	 |  ├──Analysis.js #  分析模块
| |  |	 |  ├──ChartLayer.js # chart插件模块
| |  |	 |  ├──Control.js # 面板控件模块
| |  |	 |  ├──Graphics.js #  图形操作模块
| |  |	 |  ├──Material.js #  材质操作模块
| |  |	 |  ├──Shaders.js # 着色器模块
| |  |	 |  ├──ThreeJs.js #  ThreeJs扩展模块
| |  |	 |  ├──Math3d.js # 三维数学工具模块
| |  |	 |  ├──DomUtil.js # dom操作模块
| |  |	 |  ├──Math2d.js #  二维数学工具模块
| |  |	 |  ├──Math3d.js # 三维数学工具模块
| |  |	 |  ├──Primitive.js #  配合shader的图元操作模块
| |  |	 |  ├──Draw.js #  绘制模块
| |  |	 |  ├──CustomCesiumPlugin.js #  自定义相控扩展模块
| |  |	 |  ├──PassEffect.js #  后期特效模块
| |  |	 |  ├──Plugin.js #  扩展模块
| |  |	 |  ├──index.js #  集中导出模块
| |  |	 ├──singleImport # 按需导入模块
| |  |	 |  ├──Analysis.js #  分析模块
| |  |	 |  ├──Graphics.js #  图形操作模块
| |  |	 |  ├──Material.js #  材质操作模块
| |  |	 |  ├──Primitive.js #  配合shader的图元操作模块
| |  |	 |  ├──Draw.js #  绘制模块
| |  |	 |  ├──CustomCesiumPlugin.js #  自定义相控扩展模块
| |  |	 |  ├──PassEffect.js #  后期特效模块
| |  |	 |  ├──Plugin.js #  扩展模块
| |  |	 |  ├──index.js #  集中导出模块
| |  |	 ├──common.js  # 公共工具模块
| |  |	 ├──indexOld.js  # 全量导出模块
| |  |	 ├──initConf .js # 初始化Cesium配置模块
| |  |	 ├──ColorDeal.js # 颜色转换模块
| |  |   └──index.js # 工具包入口模块
├── index.html # html 模板
├── package.json # package.json
├── README.md # README
├── tsconfig.json # tsconfig
└── vite.config.ts # vite 配置文件
  • 所有功能均遵循ES6 模板化
    文件导入
  • 采用原型继承减少模块冗余
    模块继承
  • 采用primitive + shader 进行各种功能高效渲染
    shader

二、 使用方式

  • 1、 npm 安装
 npm i cesium_dev_kit
  • 导入所有模块
import { initCesium } from 'cesium_dev_kit'
   const {
        viewer,   // viewer
        material, // 材质模块(修改实体材质)
        graphics, // 图形模块(如创建PolygonGraphics对象等)
        math3d, // 三维数学工具
        primitive, // 图元操作对象(如使用primivite创建polygon等)
        draw, // 绘制模块(如多边形,矩形)
        passEffect, // 后置处理模块
        customCesiumPlugin,
        control, // 控制模块(如模型位置调整,拖拽等)
        plugin, // 额外插件(如拓展css3的动画 ,地形裁剪)
        base, // 基础模块(如坐标转换,图层初始化等)
        analysis, // 分析模块(如坡度,坡向,可视域,通视分析)
        attackArrowObj, // 标绘(攻击)
        straightArrowObj,// 标绘(直击)
        pincerArrowObj, // 标绘(钳击)
      } = new initCesium(
          {
            cesiumGlobal: Cesium,
            containerId: 'cesiumContainer',
            viewerConfig: {
              infoBox: false,
              shouldAnimate: true,
            },
            extraConfig: {},
            MapImageryList: []
          })
  • 导入单个模块
import { Draw } from 'cesium_dev_kit'
   const drawObj = new Draw({
        cesiumGlobal: Cesium, // 全局Cesium对象
        containerId: 'cesiumContainer', // 容器id
        viewerConfig: { // 同官方的viewer配置相同
          infoBox: false,
          shouldAnimate: true,
        },
        extraConfig: {// 其他配置
          logo:true, // 是否显示logo
          depthTest:true // 是否开启深度测试
        },
        MapImageryList: tempData // 底图配置
        defaultStatic // 默认服务器地址以及材质等基础信息配置,具体请参考src\views\example\defaultStaticConf\index.js
      })
  • 2、使用script引入

先到 npm 下载 index.umd.js 到本地然后引入即可

<script type="text/javascript" src="./libs/index.umd.js"></script>

三、运行效果

案例截图

  • 旋转图形

image.png

  • 渐变墙image.png

  • 探照灯
    image.png

  • 发光线
    image.png

  • 城市道路线
    image.png

  • 球体
    image.png

  • 拖拽
    image.png

  • 分析
    image.png

  • 物体角度调整
    image.png

  • 雷达扫描
    image.png

  • 坐标拾取
    image.png

  • 信息框
    image.png

  • 标绘
    image.png

  • 测量
    image.png

  • 第一人称漫游
    漫游

案例在线地址 https://www.benpaodehenji.com/cesiumDevKit/
github源码地址 https://github.com/dengxiaoning/cesium_dev_kit
案例目前可能还有许多待优化和不足之处欢迎大家提出宝贵意见,同时也欢迎大家收藏点赞转发😀

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

奔跑的痕迹

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

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

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

打赏作者

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

抵扣说明:

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

余额充值