Skip to content

GIS Cesium 引擎

@space-air/gis-cesium 是基于 CesiumJS 的地理空间战术仿真引擎封装库。

核心能力

模块说明
CesiumViewerViewer 初始化、Clock 管理、实体 CRUD、生命周期管理
EntityManager + CombatEntity作战实体管理:卫星/战机/舰船/车辆/导弹/雷达/基地
CameraControl飞行漫游、视角锁定、实体跟踪、场景模式切换、快照系统
BaseMapManager底图运行时切换、快照/恢复、多源叠加
TerrainManager地形 Provider 管理、预设切换
LayerManager + GeoJsonLayer图层 CRUD、排序、显隐、GeoJSON 加载
HeatmapLayer热力图渲染(实体/图元/影像三种模式)
HexGrid六边形格网生成
PopupManager屏幕空间弹窗(HTML/组件/回调三种内容模式)
DrawManager绘图工具:点/线/多边形/矩形
MouseEvents鼠标交互封装:移动/左键/右键 + 坐标转换
ConnectionManager实体间连线:直线/虚线/流动线/激光/脉冲锥/金字塔
ActionRendererAction 动画系统:MoveTo / TLEOrbit / MissileStrike
Effects爆炸粒子特效 + 实体探测范围特效
Materials自定义材质:流动椭球 / 虚线流动折线
Plugins (12 Mixins)Viewer 扩展:网格/材质/场景配置/动画面板/离屏渲染/坐标轴/卫星工具/姿态变换/相对路径
GIS Utils坐标转换 / 卫星轨道计算 / 相对轨道 / 时间工具
Providers底图工厂:OSM/高德/WMS/ArcGIS/XYZ/单图

安装

bash
pnpm add @space-air/gis-cesium

需要 peer dependency:

json
{
  "cesium": "^1.133.1",
  "vue": "^3.5"
}

快速开始

ts
import { CesiumViewer, viewerEntityMixin, viewerCameraMixin } from '@space-air/gis-cesium'

// 1. 创建 Viewer
const viewer = new CesiumViewer('container', {
  animation: false,
  timeline: false,
  baseLayerPicker: false,
})

// 2. 安装插件
const v = viewer.viewer
viewerEntityMixin(v)
viewerCameraMixin(v)

// 3. 创建实体
const entity = v.createEntity({
  id: 'sat-001',
  name: '卫星-001',
  entityType: 'Satellite',
  components: [
    { id: 'pos-1', type: 'PositionComponent', lon: 108.94, lat: 34.26, alt: 400000 },
    { id: 'lbl-1', type: 'LabelComponent', text: 'Sat-001', color: '#ffd700' },
  ],
  modules: [],
})

// 4. 飞行到实体
v.cameraControl.flyToEntity(entity.entity)

架构

@space-air/gis-cesium
├── CesiumViewer          # 核心 Viewer 封装
├── Plugin Mixins (12)    # Viewer 扩展:注入方法到 viewer 实例
├── EntityManager         # 实体 CRUD + 事件
│   └── CombatEntity      # 实体数据 → Cesium Entity 同步
├── Manager Classes       # 独立管理器:底图/地形/图层/绘图/弹窗/连线
├── Action Renderers      # 可注册的 Action → 动画渲染器
├── Effects               # 爆炸/探测特效
├── Materials             # 自定义 GLSL 材质
└── Utils                 # 坐标/轨道/时间/离屏渲染

详细内容请参阅左侧导航栏中各模块指南。