基于Cesium的军事标绘,支持淡入淡出、生长动画

基于Cesium的军事标绘,支持淡入淡出、生长动画

在一些特殊的应用领域,需要基于Cesium 绘制军事箭头等图形,借鉴了ol-plot等插件,在cesium 1.99版本的基础上封装了军事标绘的插件

cesium-plot-js 支持多种图形类型,如基础多边形、箭头、曲线等。设计模式采用较为开放的面向对象的方式,每个图形使用单独的类来管理,通过类的实例来实现图形的事件绑定,样式操作等

每个图形为独立的类,绑定事件或其他操作通过类的实例来实现

先上图:

banner.png

淡入淡出:

生长动画:

当前支持的一些图形(扩展中)

类名描述
Polygon多边形
Reactangle矩形
Triangle三角形
Circle圆形
StraightArrow细直箭头
CurvedArrow曲线箭头
FineArrow直箭头
AttackArrow进攻方向箭头
SwallowtailAttackArrow燕尾进攻方向箭头
SquadCombat分队战斗方向
SwallowtailSquadCombat燕尾分队战斗方向
AssaultDirection突击方向
DoubleArrow双箭头
FreehandLine自由线
FreehandPolygon自由面
Curve曲线
Ellipse椭圆
Lune半月面

快速开始

通过 CDN 引入

1<script src="https://unpkg.com/cesium-plot-js"></script>

然后,调用绘制 API 即可:

1new CesiumPlot.FineArrow(Cesium, viewer);

通过 NPM 安装

1npm i cesium-plot-js

然后,在代码中引入并调用绘制 API:

1import CesiumPlot from 'cesium-plot-js'; 
2new CesiumPlot.FineArrow(Cesium, viewer);

示例

 1// 初始化viewer
 2const viewer = new Cesium.Viewer('cesiumContainer');
 3// 抗锯齿
 4viewer.scene.postProcessStages.fxaa.enabled = true;
 5// 设置自定义样式
 6const geometry = new CesiumPlot.FineArrow(Cesium, viewer, {
 7  material: Cesium.Color.fromCssColorString('rgba(59, 178, 208, 0.5)'),
 8  outlineMaterial: Cesium.Color.fromCssColorString('rgba(59, 178, 208, 1)'),
 9  outlineWidth: 3,
10});

其中样式完全遵循Cesium的样式规范,便于扩展

事件支持

  • 'drawStart'

绘制开始

  • 'drawUpdate'

绘制过程中点位更新,回调事件返回更新的 Cartesian3 点位

  • 'drawEnd'

绘制结束,回调事件返回图形的关键点位

1geometry.on('drawEnd', (data) => {
2  console.log(data);
3});
  • 'editStart'

编辑开始

  • 'editEnd'

编辑结束,回调事件返回图形的关键点位

1const geometry = new CesiumPlot.FineArrow(Cesium, viewer);
2geometry.on('drawEnd', (data) => { 
3    console.log(data); 
4});

持续完善中

cesium-plot-js目前仍在不断开发完善中,欢迎感兴趣的小伙伴体验交流

github: https://github.com/ethan-zf/cesium-plot-js?tab=readme-ov-file

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Cesium态势标绘是一种基于CesiumJS平台的三维地理信息系统,它能够帮助用户在地理空间中进行实时数据分析和可视化呈现。在Cesium态势标绘中,用户可以利用该系统的丰富功能和工具来创建、编辑和展示各种形式的地理实体和数据,并以三维和交互式的方式呈现出来。 Cesium态势标绘主要包括以下几个方面的功能: 1. 数据导入和处理:用户可以将地理数据以各种常见的格式(如GeoJSON、KML等)导入到Cesium态势标绘中,并实现对数据的处理和转换,以便在系统中进行进一步的分析和可视化。 2. 符号化和标记:Cesium态势标绘提供了丰富的符号库和自定义符号功能,用户可以根据需求选择合适的符号并将其应用到地理实体上,以便清晰地标记和表示各种地理信息。 3. 空间分析和测量:Cesium态势标绘还具备一些基本的空间分析工具,如距离、面积和高度测量等,用户可以通过这些工具对地理实体和数据进行准确的测量和分析。 4. 实时数据更新和展示:Cesium态势标绘支持与实时数据源的连接,用户可以通过实时数据流对地理信息进行更新和展示,以实现对动态态势的实时追踪和监测。 总之,Cesium态势标绘是一种功能强大的地理信息系统,它通过集成CesiumJS平台的优势,为用户提供了一种高效、直观和交互式的方式来分析和展示地理数据,并帮助用户更好地理解和应对不同的态势。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值