<p align="center">
<img src="https://github.com/CesiumGS/cesium/wiki/logos/Cesium_Logo_Color.jpg" width="50%" />
</p>

[![Build Status](https://travis-ci.com/CesiumGS/cesium.svg?branch=main)](https://travis-ci.com/CesiumGS/cesium)
[![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/)

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.

[CesiumJS Homepage](https://cesium.com/cesiumjs)

[CesiumJS Features Checklist](https://github.com/CesiumGS/cesium/wiki/CesiumJS-Features-Checklist)

### :rocket: Get Started

Visit the [Downloads page](https://cesium.com/downloads/) or use the npm module:

```
npm install cesium
```

Have questions? Ask them on the [community forum](https://community.cesium.com/).

Interested in contributing? See [CONTRIBUTING.md](CONTRIBUTING.md). :heart:

### :snowflake: Mission

Our mission is to create the leading 3D globe and map for static and time-dynamic content, with the best possible performance, precision, visual quality, platform support, community, and ease of use.

### :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 3D Content Come From?

CesiumJS can stream 3D content such as terrain, imagery, and 3D Tiles from the commercial [Cesium ion](https://cesium.com/blog/2018/03/01/hello-cesium-ion/)
platform and other content sources. You are free to use any combination of content sources with CesiumJS that you please.
Using Cesium ion helps support CesiumJS development. :heart:

### :clap: Featured Demos

<p>
<a href="https://cesium.com/blog/2018/08/21/cybercity/"><img src="https://images.prismic.io/cesium/2018-08-21-cover.jpg" width="30%" /></a>&nbsp;
<a href="https://apps.agi.com/SatelliteViewer/?Status=Operational"><img src="https://images.prismic.io/cesium/2018-03-29-comspoc-cover.jpg" width="30%" /></a>&nbsp;
<a href="https://cesium.com/blog/2018/02/05/historic-pharsalia-cabin-point-cloud/"><img src="https://images.prismic.io/cesium/2018-02-05-cover.jpg" width="30%" /></a>&nbsp;
<a href="https://cesium.com/blog/2017/12/12/onesky/"><img src="https://images.prismic.io/cesium/2017-12-12-cover.jpg" width="30%" /></a>&nbsp;
<a href="https://cesium.com/blog/2017/11/20/nasa-storm-virtual-globe/"><img src="https://images.prismic.io/cesium/2017-11-20-cover.jpg" width="30%" /></a>&nbsp;
<a href="https://cesium.com/blog/2017/11/16/gefs/"><img src="https://images.prismic.io/cesium/2017-11-16-cover.jpg" width="30%" /></a>&nbsp;
<a href="https://cesium.com/blog/2019/01/04/norad-tracks-santa/"><img src="https://images.prismic.io/cesium/2019-01-04-cover.jpg" width="30%" /></a>&nbsp;
<a href="https://cesium.com/blog/2017/07/23/drcog/"><img src="https://images.prismic.io/cesium/2017-07-23-cover.jpg" width="30%" /></a>&nbsp;
<a href="https://demos.cesium.com/NewYork/"><img src="https://images.prismic.io/cesium/2017-05-05-nyc-cover.jpg" width="30%" /></a>&nbsp;
<a href="https://cesium.com/blog/2018/09/27/swisstopo-live/"><img src="https://images.prismic.io/cesium/2018-09-27-cover.jpg" width="30%" /></a>&nbsp;
<a href="https://cesium.com/blog/2016/12/12/stk-czml/"><img src="https://images.prismic.io/cesium/2016-12-12-cover.jpg" width="30%" /></a>&nbsp;
<a href="https://cesium.com/blog/2016/09/29/contextcapture/"><img src="https://images.prismic.io/cesium/2016-09-29-cover.jpg" width="30%" /></a>&nbsp;
<a href="https://cesium.com/blog/2016/04/20/flightradar24/"><img src="https://images.prismic.io/cesium/2016-04-20-cover.jpg" width="30%" /></a>&nbsp;
<a href="https://cesium.com/blog/2016/02/03/fodarearth/"><img src="https://images.prismic.io/cesium/2016-02-03-cover.jpg" width="30%" /></a>&nbsp;
<a href="https://cesium.com/blog/2015/08/19/mars-trek/"><img src="https://images.prismic.io/cesium/2015-08-19-cover.jpg" width="30%" /></a>&nbsp;
<a href="https://cesium.com/blog/2015/07/16/hiroshima-archive/"><img src="https://images.prismic.io/cesium/2015-07-16-cover.jpg" width="30%" /></a>&nbsp;
<a href="https://cesium.com/blog/2019/06/13/red-bull-x-alps-in-cesium/"><img src="https://images.prismic.io/cesium/2015-10-02-cover.jpg" width="30%" /></a>&nbsp;
<br/>
<br/>
</p>
<h4><a href="https://cesium.com/blog/categories/userstories">See all demos</a></h4>

## 步骤

1. 安装 nodejs
   内网地址："\\192.168.11.11\Share3D\共享工具\编程工具\Web\node-v10.15.3-x64.msi"

2. 安装依赖库

```
npm  install
```

3. 组织编译

```
npm run build
```

4. 生成合并但未压缩库（自己调试用）

```
npm run release
```

5. 生成 合并压缩混淆（对外发行版）

```
npm run minifyRelease
```

6. 生成说明文档

```
npm run generateDocumentation
```

7. shader 代码中 uniform 变量数量说明

```
以如下电脑参数为例，使用uniform变量时，整体数量上限约为170，表现为
uniform sampler2D colorTexture;    代表一个uniform变量
uniform float u_factor;            代表一个uniform变量
uniform vec2 u_positionArray[64];  数组长度为64，代表64个uniform变量
使用限制中的uniform变量数量时，170情况下会显现出较明显的卡顿，100~128之间会有一点卡顿，64左右较为正常。

电脑参数如下：
Windows版本：Windows 7 旗舰版
处理器：Inter(R) Core(TM) i5-4590 CPU @3.30GHz 3.30GHz
安装内存（RAM）：8.00GB
系统类型：64位操作系统
显示适配器：Inter(R) HD Graphics 4600  /  Oray Display Mirror Driver
```

## @mapgis/cesium 版本说明

### 正式版

#### @mapgis/cesium v17.2.11

**更新说明：**

1. 功能优化

-   修复 M3D1.0 的服务与 SceneServer 部分数据无法解析的问题

#### @mapgis/cesium v17.2.10

**更新说明：**

1. 功能优化

-   修复 M3D 1.0 点云数据设置样式后报错的问题
-   修复风场可视化中风场粒子不显示或消失的问题
-   修复可视域分析无法修改视点的问题
-   修复点云（包括 Draco 压缩）的颜色类型为 RGB、RGB565 时无法设置透明度的问题
-   修复剖面分析中高精采样模式下部分区模型无结果的问题

#### @mapgis/cesium v17.2.9

**更新说明：**

1. 功能优化

-   修复 GroundPrimitive 在某些场景下被裁剪的问题
-   修复地形深度检测参数会被 Graphicslayer 修改的问题

#### @mapgis/cesium v17.2.8

**更新说明：**

1. 功能优化

-   修复 M3D 后处理拾取方法失效问题

#### @mapgis/cesium v17.2.7

**更新说明：**

1. 功能优化

-   优化面积测量工具图形外边线绘制效果

#### @mapgis/cesium v17.2.6

**更新说明：**

1. 功能优化

-   增强 IGS 相关 provider 参数的非空校验

#### @mapgis/cesium v17.2.5

**更新说明：**

1. 功能优化

-   修复裁剪方向相反时动态剖切封闭侧面异常的问题
-   优化 boundingSphere 类型的包围体对象的适配

#### @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.0 基于官方 Cesium v1.84.0 进行了定制和扩展开发。
