npm package: @mapgis/cesium
Description: CesiumJS is a JavaScript library for creating 3D globes and 2D maps in a web browser without a plugin.
Author: Cesium GS, Inc.
Latest version: 17.8.1

# CesiumJS

[![Build Status](https://github.com/CesiumGS/cesium/actions/workflows/dev.yml/badge.svg)](https://github.com/CesiumGS/cesium/actions/workflows/dev.yml)
[![npm](https://img.shields.io/npm/v/cesium)](https://www.npmjs.com/package/cesium)
[![Docs](https://img.shields.io/badge/docs-online-orange.svg)](https://cesium.com/learn/)

![Cesium](https://github.com/CesiumGS/cesium/wiki/logos/Cesium_Logo_Color.jpg)

CesiumJS is a JavaScript library for creating 3D globes and 2D maps in a web browser without a plugin. It uses WebGL for hardware-accelerated graphics, and is cross-platform, cross-browser, and tuned for dynamic-data visualization.

Built on open formats, CesiumJS is designed for robust interoperability and scaling for massive datasets.

---

[**Examples**](https://sandcastle.cesium.com/) :earth_asia: [**Docs**](https://cesium.com/learn/cesiumjs-learn/) :earth_americas: [**Website**](https://cesium.com/cesiumjs) :earth_africa: [**Forum**](https://community.cesium.com/) :earth_asia: [**User Stories**](https://cesium.com/user-stories/)

---

## :rocket: Get started

Visit the [Downloads page](https://cesium.com/downloads/) to download a pre-built copy of CesiumJS.

### npm & yarn

If you’re building your application using a module bundler such as Webpack, Parcel, or Rollup, you can install CesiumJS via the [`cesium` npm package](https://www.npmjs.com/package/cesium):

```sh
npm install cesium --save
```

Then, import CesiumJS in your app code. Import individual modules to benefit from tree shaking optimizations through most build tools:

```js
import { Viewer } from "cesium";
import "cesium/Build/Cesium/Widgets/widgets.css";

const viewer = new Viewer("cesiumContainer");
```

In addition to the `cesium` package, CesiumJS is also [distributed as scoped npm packages for better dependency management](https://cesium.com/blog/2022/12/07/modular-structure-in-cesiumjs/):

- [`@cesium/engine`](./packages/engine/README.md) - CesiumJS's core, rendering, and data APIs
- [`@cesium/widgets`](./packages/widgets/README.md) - A widgets library for use with CesiumJS

### What next?

See our [Quickstart Guide](https://cesium.com/learn/cesiumjs-learn/cesiumjs-quickstart/) for more information on getting a CesiumJS app up and running.

Instructions for serving local data are in the CesiumJS
[Offline Guide](./Documentation/OfflineGuide/README.md).

Interested in contributing? See [CONTRIBUTING.md](CONTRIBUTING.md). :heart:

## :green_book: License

[Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0.html). CesiumJS is free for both commercial and non-commercial use.

## :earth_americas: Where does the Global 3D Content come from?

The Cesium platform follows an [open-core business model](https://cesium.com/why-cesium/open-ecosystem/cesium-business-model/) with open source runtime engines such as CesiumJS and optional commercial subscription to Cesium ion.

CesiumJS can stream [3D content such as terrain, imagery, and 3D Tiles from the commercial Cesium ion platform](https://cesium.com/platform/cesium-ion/content/) alongside open standards from other offline or online services. We provide Cesium ion as the quickest option for all users to get up and running, but you are free to use any combination of content sources with CesiumJS that you please.

Bring your own data for tiling, hosting, and streaming from Cesium ion. [Using Cesium ion](https://cesium.com/ion/signup/) helps support CesiumJS development.

## :white_check_mark: Features

- Stream in 3D Tiles and other standard formats from Cesium ion or another source
- Visualize and analyze on a high-precision WGS84 globe
- Share with users on desktop or mobile

See more in the [CesiumJS Features Checklist](https://github.com/CesiumGS/cesium/wiki/CesiumJS-Features-Checklist).

## @mapgis/cesium 版本说明

### 正式版

#### @mapgis/cesium v17.8.1

**更新说明：**

1. 修复

- 修复卷帘分析 M3D / 3D Tiles 切换失效的问题

#### @mapgis/cesium v17.8.0

**更新说明：**

1. 新增

- 模型缓存图层增加是否受场景 z 向缩放参数影响的开关
- 模型缓存图层增加是否开启光照的开关
- 3D Tiles 支持运行时生成唯一要素 ID
- 支持高斯泼溅数据接入
- 模型缓存图层在 Web 前端加载效率问题分析、诊断工具
- 新增场景积雪、动物集群特效

2. 优化

- 优化使用非 FID 属性时更新 Cesium3DTileStyle 场景渲染效率
- 压平分析功能增强，支持各版本 3D Tiles 和 M3D 模型数据

#### @mapgis/cesium v17.6.9

**更新说明：**

1. 功能优化

- 修复M3D 2.2模型无法预览的问题

#### @mapgis/cesium v17.6.8

**更新说明：**

1. 功能新增

- logoScale接口支持去掉 MapGIS Logo

2. 功能优化

- 修复动态广告牌移除时报错的问题


#### @mapgis/cesium v17.6.7

**更新说明：**

1. 功能优化

- 修复爆炸分析中移动距离错误的问题

#### @mapgis/cesium v17.6.6

**更新说明：**

1. 功能优化

- 修复模型缓存图层销毁报错的问题

#### @mapgis/cesium v17.6.5

**更新说明：**

1. 功能优化

- 解决使用 cesium 定义的 TilingScheme 报错的问题

#### @mapgis/cesium v17.6.4

**更新说明：**

1. 功能优化

- WMS provider 中计划废弃参数 isReverseBBOX，使用 isReverseXY 代替

#### @mapgis/cesium v17.6.3

**更新说明：**

1. 功能优化

- 解决剖面封闭结果删除异常问题
- 优化 3D Tiles 运行时生成唯一要素 ID 的实现

#### @mapgis/cesium v17.6.2

**更新说明：**

1. 功能新增
- 3D Tiles 支持运行时生成唯一要素 ID

2. 功能优化

- 优化部分模型数据剖面的加载效果
- 解决剖面分析中动态修改 ClippingPlanes 时的报错问题 

#### @mapgis/cesium v17.6.1

**更新说明：**

1. 功能优化

- 调整库 @mapgis/webclient-crypto 的依赖策略为 devDependencies


#### @mapgis/cesium v17.6.0

**更新说明：**

1. 功能新增
- 支持接入M3D2.2模型服务
- 动态剖切切割剖面支持水平面
- 支持logo样式大小设置

2. 功能优化
- 可视域效果的优化和增强
- 模型压平支持Ceisum 3DTiles 数据


#### @mapgis/cesium v17.4.6

**更新说明：**

1. 功能优化
-  修复M3D 2.0/2.1的G3D服务无法加载问题


#### @mapgis/cesium v17.4.5

**更新说明：**

1. 功能优化
-  M3D 1.0 服务支持设置请求头 header 和 令牌token
-  修复ViewportQuad与GroundPrimitive同时使用时被裁剪的问题

#### @mapgis/cesium v17.4.4

**更新说明：**

1. 功能优化
- 优化 M3D 1.0 属性解析逻辑

#### @mapgis/cesium v17.4.3

**更新说明：**

1. 功能新增
- Cesium升级接口增强，支持 M3D 2.0 构建树


#### @mapgis/cesium v17.4.2

**更新说明：**

1. 功能新增
- Cesium升级接口增强

2. 功能优化
- 修复 M3D 1.0 的M3D服务与SceneServer部分数据无法解析的问题

#### @mapgis/cesium v17.4.1

**更新说明：**

1. 功能新增

- Cesium升级接口增强

2. 功能优化

- 修复已知问题


#### @mapgis/cesium v17.4.0

**更新说明：**

1. 功能新增

- Cesium引擎库由1.84升级至1.122
- 支持M3D2.1格式的栅格体元数据接入、配色方案设置、时态切换、透明度设置

2. 功能优化

- 卷帘分析增加对MaterialAppearance、EllipsoidSurfaceAppearance 类型图元的支持
- 优化M3D2.0的爆炸分析
- 优化绘制辅助剖切面(体)后的控制显隐的效果


#### @mapgis/cesium v17.2.4

**更新说明：**

1. 功能优化

-   优化模型爆炸后的拾取结果
-   优化绘制辅助剖切面(体)后的控制显隐的效果

#### @mapgis/cesium v17.2.3

**更新说明：**

1. 功能优化

-   优化地形场景中积水仿真计算结果
-   优化地形剖切封边效果

#### @mapgis/cesium v17.2.2

**更新说明：**

1. 功能优化

-   MaterialAppearance、EllipsoidSurfaceAppearance 类型 Appearance 支持卷帘效果

#### @mapgis/cesium v17.2.1

**更新说明：**

1. 功能优化

-   修复已知问题

#### @mapgis/cesium v17.2.0

**更新说明：**

1. 功能新增

-   支持加载自定义裁图原点、自定义裁图方向的瓦片服务
-   可视域分析功能支持可视区域范围量化计算
-   支持图片标注显示层级高于可视域分析结果
-   实现多 DEM 服务聚合显示
-   动态剖切支持按属性筛被剖切的内容

2. 功能优化

-   可视域分析效果优化
-   优化多种场景下拾取世界坐标的结果
-   优化开启水面倒影时淹没分析的效果
-   优化动态剖切剖面的拾取效果
-   优化单体化专题图 renderer 的效果

#### @mapgis/cesium v17.0.0

**更新说明：**

1. 功能新增

-   支持 MeshOpt 压缩模式
-   支持接入新版 BIM 模型缓存服务
-   支持 IGS M3DServer 新特性
-   支持二维图件与模型融合展示
-   支持同时进行多个可视域分析
-   全球风场数据可视化
-   实现基于无人机场景下的全景图形的拼接与展示
-   支持接入 M3D2.1 模型缓存服务
-   行业标绘增加对于贴场景高程模式的支持

2. 功能优化

-   优化几何体裁剪效果，支持裁剪区域反转，支持多边形几何体裁剪
-   优化专题图渲染效果，提升对 Cesium 的样式兼容性

**备注：**

@mapgis/cesium v17.0.x - v17.2.x 基于官方 Cesium v1.84.0 进行了定制和扩展开发。
@mapgis/cesium v17.4.x 基于官方 Cesium v1.122.0 进行了定制和扩展开发。