Skip to content

Cesium 引擎

@gmap/shim-cesium 提供基于 Cesium 的 3D 地图引擎。

安装

bash
npm install @gmap/shim-cesium cesium

注册

ts
import CesiumAdapter from '@gmap/shim-cesium';
import { EngineRegistry } from '@gmap/core';

// 推荐懒加载(Cesium 体积大)
EngineRegistry.registerLazy('cesium', () => import('@gmap/shim-cesium'), { default: '3d' });

能力

能力支持说明
dimensions['3d']仅 3D
terrain地形
tiles3d3D Tiles
pointCloud点云
model3D 模型
lighting光照
shadows阴影
sceneEffects场景效果
raster栅格瓦片
geojsonGeoJSON
mapboxStyle不支持

特色

  • 完整 3D 地球
  • 地形和 3D Tiles
  • 点云和 3D 模型
  • 光照、阴影、大气效果
  • 飞行相机控制

示例

ts
import { createMap } from '@gmap/standard';
import { EngineRegistry } from '@gmap/core';

EngineRegistry.registerLazy('cesium', () => import('@gmap/shim-cesium'), { default: '3d' });

const map = await createMap({
  target: 'map',
  engine: 'cesium',
  mode: '3d',
  center: [116.397, 39.908],
  zoom: 10,
});

// 设置地形
map.setTerrain(new TerrainSource({ url: 'https://assets.cesium.com/...' }));

// 飞行到目标
await map.flyTo({ center: [121, 31], zoom: 12 });

共存支持

  • setInputEnabled — 通过 scene.screenSpaceCameraController 控制 enableTranslate/enableZoom/enableRotate/enableTilt
  • view:change — 监听 camera.changed 事件
  • overlay — DOM container 管理
  • CesiumOverlaySyncAdapter — 将 2D overlay 投影到 3D 屏幕坐标

四川省交通运输综合地理服务平台 地图开发框架