CIMCube SDK 文档

CIMCube是一个用于在Web浏览器中创建3D地球和2D地图的JavaScript库,无需插件支持。本文档详细介绍了CIMCube SDK的所有导出模块和类。

核心类

Glodon.CIMCube

主要的CIMCube类,用于创建3D地球和2D地图实例。

主要属性:

  • viewer - 视图对象
  • scene - 场景对象
  • globe - 地球对象
  • camera - 相机对象

主要方法:

  • flyTo() - 飞行定位
  • dispose() - 释放资源

Glodon.CIMCube.Scene

场景管理类,包含以下子类:

  • ReflectBox - 反射盒
  • PointLight - 点光源
  • SpotLight - 聚光灯
  • DirectionalLight - 方向光
  • Globe - 地球
  • GroundSkyBox - 地面天空盒

Glodon.CIMCube.Camera

相机控制类

主要方法:

  • flyTo() - 飞行定位
  • flyToBoundingSphere() - 飞行定位到包围球
  • getCaptureImg() - 获取试图快照

主要模块

1. Glodon.CIMCube.Analysis - 空间分析模块

提供各种地理空间分析功能:

1.1 基础分析类

  • CalculateSlope - 坡度计算分析
  • SlopeAnalysis - 坡度分析
  • ElevationHeatMap - 高程热力图分析
  • TerrainSectionAnalysis - 地形剖面分析
  • TerrainTINAnalysis - 地形TIN分析

1.2 填挖方分析类

  • CutFill - 填挖方分析,计算指定区域的填挖方量
  • ModelFlat - 模型平整分析

1.3 视域分析类

  • Visibility - 通视分析
  • ViewShed - 视域分析
  • ViewCorridor - 视廊分析
  • ViewDome - 视穹分析
  • SkylineAnalysis - 天际线分析

1.4 环境分析类

  • FloodAnalysis - 洪水淹没分析
  • Sunlight - 日照分析
  • WaterPollutionAnalysis - 水污染分析

1.5 剖面分析类

  • SectionAnalysis - 剖面分析
  • ModelSectionAnalysis - 模型剖面分析
  • PipeLineCrossSection - 管线横断面分析
  • Facade - 立面分析

1.6 其他分析类

  • LimitHeight - 限高分析
  • NearestPointAnalysis - 最近点分析
  • BackLine - 背景线分析

2. Glodon.CIMCube.Simulation - 仿真模块

包含实时路径仿真等功能:

  • RealTimePath - 实时路径仿真

3. Glodon.CIMCube.Animation - 动画模块

包含各种特效和动画功能:

3.1 Effect - 动画特效子模块

  • CameraRoaming - 相机漫游
  • FirstPersonRoaming - 第一人称漫游
  • TrackRoaming - 轨迹漫游
  • ThirdPersonRoaming - 第三人称漫游
  • BillboardRoaming - 广告牌漫游
  • BillboardEntity - 广告牌实体
  • PrismPoint - 棱镜点
  • Metaptosis - 变形效果
  • Radar - 雷达效果
  • CameraShooting - 相机拍摄
  • Wall - 墙体效果
  • VideoEntity - 视频实体
  • PolylineVolumeFlow - 管线体积流动
  • AmbientOcclusion - 环境光遮蔽
  • DynamicLines - 动态线条(即将删除)
  • RoadLine - 道路线条(即将删除)

3.2 WeatherEffect - 天气特效子模块

  • Snow - 雪花效果
  • Rain - 雨滴效果
  • Fog - 雾气效果

3.3 PlaneEffect - 面特效子模块

  • Dynamic - 动态面效果
  • Radar - 雷达扫描面
  • RingScan - 环形扫描
  • StaticsRingScan - 静态环形扫描
  • Moire - 波纹效果
  • Statics - 静态面效果
  • Sequence - 序列面效果
  • DiffuseWall - 扩散墙效果

3.4 PointEffect - 点特效子模块

  • Dynamic - 动态点效果
  • Twinkle - 闪烁点效果
  • Scatter - 散射点效果
  • InstanceBillboard - 实例化广告牌

3.5 ParticleEffect - 粒子特效子模块

  • Water - 水粒子效果
  • Fire - 火焰粒子效果
  • Smoke - 烟雾粒子效果

3.6 LineEffect - 线特效子模块

  • TrailLines - 轨迹线条
  • DynamicLines - 动态线条
  • RopeLines - 绳索线条
  • RoadLine - 道路线条
  • FlyLines - 飞行线条

3.7 ModelEffect - 模型特效子模块

  • UVTexture - UV纹理效果
  • ModelExplode - 模型爆炸效果
  • ModelInteroperation - 模型互操作

4. Glodon.CIMCube.Layer - 图层模块

包含各种类型的图层管理功能:

4.1 图层管理

  • LayerManager - 图层管理器

4.2 基础图层类

  • ImageryLayer - 影像图层,支持多种影像服务
  • TerrainLayer - 地形图层
  • GroupLayer - 图层组

4.3 3D数据图层

  • Tiles3DLayer - 3D Tiles图层
  • GltfLayer - GLTF模型图层
  • S3MTilesLayer - S3M瓦片图层
  • I3STilesLayer - I3S瓦片图层

4.4 矢量数据图层

  • GeoJsonLayer - GeoJSON图层
  • KmlLayer - KML图层
  • GmlLayer - GML图层
  • VectorTileLayer - 矢量瓦片图层

4.5 特殊图层

  • GraphicLayer - 图形图层
  • ClusterLayer - 聚合图层
  • DivLayer - DIV图层
  • InstanceLayer - 实例图层
  • GSMMLayer - GSMM图层

5. Glodon.CIMCube.Graphic - 图形模块

包含各种几何图形和标注功能:

5.1 基础图形类

  • BoxGraphic - 盒子图形
  • PolygonGraphic - 多边形图形
  • PolylineGraphic - 折线图形
  • PointGraphic - 点图形
  • EllipseGraphic - 椭圆图形
  • RectangleGraphic - 矩形图形
  • CorridorGraphic - 走廊图形

5.2 3D图形类

  • CylinderGraphic - 圆柱体图形
  • EllipsoidGraphic - 椭球体图形
  • PlaneGraphic - 平面图形
  • WallGraphic - 墙体图形
  • PolylineVolumeGraphic - 折线体积图形

5.3 标注图形类

  • BillboardGraphic - 广告牌图形
  • LabelGraphic - 标签图形

5.4 辅助类和枚举

  • HeightReference - 高度参考枚举
  • CornerType - 角点类型枚举
  • HorizontalOrigin - 水平原点枚举
  • VerticalOrigin - 垂直原点枚举
  • LabelStyle - 标签样式枚举
  • GeoPoint - 地理点类

6. Glodon.CIMCube.Utils - 工具模块

包含各种实用工具和服务:

6.1 裁剪工具

  • ModelClip - 模型裁剪
  • TerrainClip - 地形裁剪
  • SceneClip - 场景裁剪
  • BoxClip - 盒子裁剪
  • ClipBase - 裁剪基类

6.2 测量工具

  • Measure - 测量工具
  • MeasureUtils - 测量工具集
    • MeasureFormula - 测量公式
    • MeasurementUtils - 测量实用工具

6.3 分析工具

  • VolumeCalculation - 体积计算
  • HeatMap - 热力图
  • ContourLine - 等高线
  • BufferTool - 缓冲区工具
  • SightLimitCalculate - 视距限制计算

6.4 服务工具

  • DistanceLegendService - 距离图例服务
  • CompassService - 指南针服务
  • POISearchService - POI搜索服务
  • StatusBarService - 状态栏服务
  • MapLegendService - 地图图例服务

6.5 其他工具

  • MultiViewPort - 多视口
  • PerformanceListening - 性能监听
  • MapSplit - 地图分屏
  • BoxDragger - 盒子拖拽器
  • ModelCut - 模型切割
  • ModelExcavation - 模型挖掘
  • CoordinateTransform - 坐标转换
  • Snap - 捕捉工具

7. Glodon.CIMCube.Widgets - 组件模块

包含各种UI组件和控件:

7.1 图层控制组件

  • LayerControlWidget - 图层控制组件
  • MapOptionsWidget - 地图选项组件

7.2 导航组件

  • CompassWidget - 指南针组件
  • GeocoderWidget - 地理编码组件

7.3 信息显示组件

  • StatusBar - 状态栏
  • DistanceLegend - 距离图例
  • MapLegendWidget - 地图图例组件

7.4 漫游组件

  • CameraRoam - 相机漫游组件
  • GroundRoam - 地面漫游组件

7.5 其他组件

  • MapSplitWidget - 地图分屏组件
  • DragModel - 拖拽模型组件

8. Glodon.CIMCube.Controls - 控制模块

包含各种交互控制功能:

  • TakeCoordinates - 坐标拾取控制器
  • PickEventHandler - 拾取事件处理器

9. Glodon.CIMCube.Global - 全局模块

包含全局配置、数据和工具:

9.1 Defines - 全局定义子模块

包含各种常量和枚举定义

9.2 Data - 全局数据子模块

包含全局数据管理

9.3 Logger - 日志子模块

  • logger - 日志记录器
  • LogLevels - 日志级别枚举

9.4 Math - 数学工具子模块

包含各种数学计算和坐标转换函数:

角度转换:

  • toRadians() - 角度转弧度
  • toDegrees() - 弧度转角度

坐标转换:

  • cartesianToLlh() - 笛卡尔坐标转经纬高
  • llhToCartesian() - 经纬高转笛卡尔坐标
  • cartesianToCoordinates() - 笛卡尔坐标转坐标
  • coordinatesToCartesian() - 坐标转笛卡尔坐标
  • cartesianArrayToCoordinatesArray() - 笛卡尔坐标数组转坐标数组
  • coordinatesArrayToCartesianArray() - 坐标数组转笛卡尔坐标数组
  • cartesianToCartographic() - 笛卡尔坐标转制图坐标
  • cartographicToCartesian() - 制图坐标转笛卡尔坐标

其他工具:

  • modelToWorldCoordinates() - 模型坐标转世界坐标
  • toCesiumColor() - 转换为Cesium颜色
  • caluateMatrix() - 计算矩阵
  • coordinateTranslate() - 坐标平移
  • getWorldPositionByLocalPosition() - 通过本地位置获取世界位置
  • offsetToLongLat() - 偏移转经纬度
  • roundingByBezier() - 贝塞尔圆角
  • computeSVDMatrix() - 计算SVD矩阵

快速开始

基本初始化

// 创建CIMCube实例
const map = new Glodon.CIMCube({
    id: "cesiumContainer",
    gisResourceUrl: "../CIMCubeRender/",
    baseMap: {
        show: true,
        name: "高德影像",
        imageryType: Glodon.CIMCube.Global.Defines.ImageryLayerType.GAODE_IMG
    },
    params: {
        debugShowFramesPerSecond: true,
        shadows: true,
        layerControl: true,
        useDefaultTerrain: false,
        depthTestAgainstTerrain: true
    }
});

添加图层

// 添加影像图层
const imageryLayer = new Glodon.CIMCube.Layer.ImageryLayer({
    imageryType: Glodon.CIMCube.Global.Defines.ImageryLayerType.TDT_IMG,
    name: "天地图影像"
});

// 添加3D Tiles图层
const tiles3DLayer = new Glodon.CIMCube.Layer.Tiles3DLayer({
    url: "path/to/tileset.json",
    name: "3D建筑模型"
});

创建图形

// 创建多边形图形
const polygon = new Glodon.CIMCube.Graphic.PolygonGraphic({
    positions: [
        [116.1, 39.5, 0],
        [116.2, 39.5, 0],
        [116.2, 39.6, 0],
        [116.1, 39.6, 0]
    ],
    material: "red",
    outline: true,
    outlineColor: "yellow"
});

进行空间分析

// 创建填挖方分析
const cutFillAnalysis = new Glodon.CIMCube.Analysis.CutFill(map, {
    boundary: [
        {lon: 116.1, lat: 39.5, height: 0},
        {lon: 116.2, lat: 39.5, height: 0},
        {lon: 116.2, lat: 39.6, height: 0},
        {lon: 116.1, lat: 39.6, height: 0}
    ],
    level: 100,
    showVisualization: true
});

添加动画效果

// 创建相机漫游
const cameraRoaming = new Glodon.CIMCube.Animation.Effect.CameraRoaming(map, {
    positions: [
        {lon: 116.1, lat: 39.5, height: 1000},
        {lon: 116.2, lat: 39.6, height: 1000}
    ],
    duration: 10000
});

// 开始漫游
cameraRoaming.start();

使用工具

// 创建测量工具
const measure = new Glodon.CIMCube.Utils.Measure(map, measureMode, options);

// 开始距离测量
measure.activate();

事件处理

// 监听分析完成事件
cutFillAnalysis.on("finish", function(result) {
    console.log("填挖方分析完成", result);
});

资源管理

// 释放资源
map.dispose();
cutFillAnalysis.dispose();
cameraRoaming.dispose();

本文档涵盖了CIMCube SDK的所有导出模块和主要功能。更详细的API文档请参考自动生成的JSDoc文档。