|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614 | # 矢量要素 🌎
## DC.Overlay
> 覆盖物基类
:::warning
该类无需实例化,既视实例化后也无法使用
:::
### properties
- `{String} overlayId`:唯一标识 **_`readonly`_**
- `{String} id`:业务唯一标识
- `{Boolean} show`:是否显示
- `{Object} attr`:业务属性
- `{Array} contextMenu`:设置右击菜单,菜单的回调函数参数为 viewer,overlay
- `{String} state`:覆盖物状态 **_`readonly`_**
- `{String} type`:覆盖物类型 **_`readonly`_**
- `{Boolean} allowDrillPicking`:是否可以穿透选择,默认为 false,如果为 true 时,覆盖物为穿透选择其后面的所有覆盖物,并触发其后面的所有覆盖物的鼠标事件
### methods
- **_addTo(layer)_**
  添加到图层
  - 参数
    - `{Layer} layer` :图层
  - 返回值 `this`
- **_remove()_**
  删除
  - 返回值 `this`
- **_setLabel(text, textStyle)_**
  设置标签
  - 参数
    - `{String} text`:文本
    - `{String} textStyle`:文本样式,详情参考:[DC.Label](#dc-label)
  - 返回值 `this`
:::warning
该函数仅对下列覆盖物有效:Point、Circle、Polygon、Billboard、Ellipse、Rectangle
:::
- **_on(type, callback, context)_**
  事件订阅
  - 参数
    - `{Object} type` :订阅类型
    - `{Function} callback` :订阅回调
    - `{Object} context` :上下文
  - 返回值 `this`
- **_off(type, callback, context)_**
  取消事件订阅
  - 参数
    - `{Object} type` :订阅类型
    - `{Function} callback` :订阅回调
    - `{Object} context` :上下文
  - 返回值 `this`
- **_fire(type,params)_**
  触发事件
  - 参数
    - `{Object} type` :订阅类型
    - `{Object} params` :参数
  - 返回值 `this`
### static methods
- **_registerType(type)_**
  注册覆盖物类型
  - 参数
    - `{String} type`:覆盖物类型
- **_getOverlayType(type)_**
  获取覆盖物类型
  - 参数
    - `{String} type`:覆盖物类型
  - 返回值 `string`
## DC.Point
> 点位要素,继承于[Overlay](#overlay)
### example
```js
let position = new DC.Position(120, 20)
let point = new DC.Point(position)
point.setStyle({
  pixelSize: 10,
})
```
### creation
- **_constructor(position)_**
  构造函数
  - 参数
    - `{Position|String|Array|Object} position`:坐标
  - 返回值 `point`
### properties
- `{Position|String|Array|Object} position`:坐标
### methods
- **_setStyle(style)_**
  设置样式
  - 参数
    - `{Object} style`:样式,详情参考:[PointGraphics](http://resource.dvgis.cn/cesium-docs/PointGraphics.html)
  - 返回值 `this`
```json
// 样式参数(可选)
{
  "pixelSize": 1, //像素大小
  "heightReference": 0, //高度参照,0:位置无参照,位置是绝对的,1:位置固定在地形上 2:位置高度是指地形上方的高度。
  "color": DC.Color.WHITE, //颜色
  "outlineColor": DC.Color.WHITE, //边框颜色
  "outlineWidth": 0, //边框大小,
  "scaleByDistance": {
    "near": 0, //最近距离
    "nearValue": 0, //最近距离值
    "far": 1, //最远距离值
    "farValue": 0 //最远距离值
  }, //根据距离设置比例
  "translucencyByDistance": {
    "near": 0, //最近距离
    "nearValue": 0, //最近距离值
    "far": 1, //最远距离值
    "farValue": 0 //最远距离值
  }, //根据距离设置透明度
  "distanceDisplayCondition": {
    "near": 0, //最近距离
    "far": Number.MAX_VALUE //最远距离
  }, //根据距离设置可见
  "disableDepthTestDistance": 0 // 深度检测距离,用于防止剪切地形,设置为零时,将始终应用深度测试。设置为Number.POSITIVE_INFINITY时,永远不会应用深度测试。
}
```
- **_fromEntity(entity)_**
  Entity 转换为 Overlay
  - 参数
    - `{Object} entity`:Cesium 覆盖物
  - 返回值 `point`
## DC.Polyline
> 线要素,继承于[Overlay](#overlay)
### example
```js
let polyline = new DC.Polyline('120,20;120,30')
polyline.setStyle({
  width: 10,
})
```
### creation
- **_constructor(positions)_**
  构造函数
  - 参数
    - `{String|Array<Position|Number|String|Object>} positions`:坐标串
  - 返回值 `polyline`
### properties
- `{String|Array<Position|Number|String|Object>} positions`:坐标串
- `{DC.Position} center`:中心点 **_`readonly`_**
- `{Number} distance`:距离,单位:米 **_`readonly`_**
### methods
- **_setStyle(style)_**
  设置样式
  - 参数
    - `{Object} style`:样式,详情参考:[PolylineGraphics](http://resource.dvgis.cn/cesium-docs/PolylineGraphics.html)
  - 返回值 `this`
```json
// 样式参数(可选)
{
  "width": 1, //线宽
  "material": DC.Color.WHITE, //材质
  "clampToGround": false, //是否贴地
  "shadows": 0, //阴影类型,0:禁用、1:启用 、2:投射、3:接受
  "distanceDisplayCondition": {
    "near": 0, //最近距离
    "far": Number.MAX_VALUE //最远距离
  }, //根据距离设置可见
  "classificationType": 2, //分类 是否影响地形,3D切片或同时影响这两者。0:地形、1:3D切片、2:两者
  "zIndex": 0 //层级
}
```
- **_fromEntity(entity)_**
  Entity 转换为 Overlay
  - 参数
    - `{Object} entity`:Cesium 覆盖物
  - 返回值 `polyline`
## DC.Polygon
> 面要素,继承于[Overlay](#overlay)
### example
```js
let polygon = new DC.Polygon('120,20;120,30;122,30')
polygon.setStyle({
  height: 10,
})
```
### creation
- **_constructor(positions)_**
  构造函数
  - 参数
    - `{String|Array<Position|Number|String|Object} positions`:坐标串
  - 返回值 `polygon`
### properties
- `{String|Array<Position|Number|String|Object>} positions`:坐标串
- `{String|Array<Position|Number|String|Object>} holes`:洞坐标串
- `{DC.Position} center`:中心点 **_`readonly`_**
- `{Number} area`:距离,单位:平方米 **_`readonly`_**
### methods
- **_setStyle(style)_**
  设置样式
  - 参数
    - `{Object} style`:样式,详情参考:[PolygonGraphics](http://resource.dvgis.cn/cesium-docs/PolygonGraphics.html)
  - 返回值 `this`
```json
// 样式参数(可选)
{
  "height": 1, //高度
  "heightReference": 0, //高度参照,0:位置无参照,位置是绝对的,1:位置固定在地形上 2:位置高度是指地形上方的高度。
  "extrudedHeight": 0, //拉升高度
  "stRotation": 0, //旋转角度
  "fill": true, //是否用提供的材料填充多边形。
  "material": DC.Color.WHITE, //材质
  "outline": false, //是否显示边框
  "outlineColor": DC.Color.BLACK, //边框颜色
  "outlineWidth": 0, //边框宽度
  "closeTop": true, //顶面是否闭合
  "closeBottom": true, //底面是否闭合
  "shadows": 0, //阴影类型,0:禁用、1:启用 、2:投射、3:接受
  "distanceDisplayCondition": {
    "near": 0, //最近距离
    "far": Number.MAX_VALUE //最远距离
  }, //根据距离设置可见
  "classificationType": 2, //分类 是否影响地形,3D切片或同时影响这两者。0:地形、1:3D切片、2:两者
  "zIndex": 0 //层级
}
```
- **_fromEntity(entity)_**
  Entity 转换为 Overlay
  - 参数
    - `{Object} entity`:Cesium 覆盖物
  - 返回值 `polygon`
## DC.Billboard
> 图标要素,继承于[Overlay](#overlay)
### example
```js
let position = new DC.Position(120, 20)
let billboard = new DC.Billboard(position, '***/**.png')
billboard.size = [20, 20]
```
### creation
- **_constructor(position,icon)_**
  构造函数
  - 参数
    - `{Position|String|Array|Object} position`:坐标
    - `{String} icon`:图标地址
  - 返回值 `billboard`
### properties
- `{Position|String|Array|Object} position`:坐标
- `{String} icon`:图标地址
- `{Array<Number>} size`:图标大小
### methods
- **_setStyle(style)_**
  设置样式
  - 参数
    - `{Object} style`:样式,详情参考:[BillboardGraphics](http://resource.dvgis.cn/cesium-docs/BillboardGraphics.html)
  - 返回值 `this`
```json
// 样式参数(可选)
{
  "heightReference": 0, //高度参照,0:位置无参照,位置是绝对的,1:位置固定在地形上 2:位置高度是指地形上方的高度。
  "scale": 1, //比例
  "pixelOffset": { "x": 0, "y": 0 }, //偏移像素
  "rotation": 0, //旋转角度
  "translucencyByDistance": {
    "near": 0, //最近距离
    "nearValue": 0, //最近距离值
    "far": 1, //最远距离值
    "farValue": 0 //最远距离值
  }, //根据距离设置透明度
  "scaleByDistance": {
    "near": 0, //最近距离
    "nearValue": 0, //最近距离值
    "far": 1, //最远距离值
    "farValue": 0 //最远距离值
  }, //根据距离设置比例
  "distanceDisplayCondition": {
    "near": 0, //最近距离
    "far": Number.MAX_VALUE //最远距离
  }, //根据距离设置可见
  "disableDepthTestDistance": 0 // 深度检测距离,用于防止剪切地形,设置为零时,将始终应用深度测试。设置为Number.POSITIVE_INFINITY时,永远不会应用深度测试。
}
```
- **_fromEntity(entity)_**
  Entity 转换为 Overlay
  - 参数
    - `{Object} entity`:Cesium 覆盖物
  - 返回值 `billboard`
## DC.Label
> 标签要素,继承于[Overlay](#overlay)
### example
```js
let position = new DC.Position(120, 20)
let Label = new DC.Label(position, 'test')
```
### creation
- **_constructor(position,text)_**
  构造函数
  - 参数
    - `{Position|String|Array|Object} position`:坐标
    - `{String} text`:文本
  - 返回值 `label`
### properties
- `{Position} position`:坐标
- `{String} text`:文本
### methods
- **_setStyle(style)_**
  设置样式
  - 参数
    - `{Object} style`:样式,详情参考:[LabelGraphics](http://resource.dvgis.cn/cesium-docs/LabelGraphics.html)
  - 返回值 `this`
```json
// 样式参数(可选)
{
  "font": "30px sans-serif", // CSS 字体设置
  "scale": 1, //比例
  "pixelOffset": { "x": 0, "y": 0 }, //偏移像素
  "heightReference": 0, //高度参照,0:位置无参照,位置是绝对的,1:位置固定在地形上 2:位置高度是指地形上方的高度。
  "showBackground": false, //是否显示背景
  "backgroundColor": DC.Color.BLACK, //背景颜色
  "backgroundPadding": { "x": 0, "y": 0 }, //背景间隙
  "fillColor": DC.Color.BLACK, //文字颜色
  "outlineColor": DC.Color.WHITE, //边框颜色
  "outlineWidth": 0, //边框大小,
  "scaleByDistance": {
    "near": 0, //最近距离
    "nearValue": 0, //最近距离值
    "far": 1, //最远距离值
    "farValue": 0 //最远距离值
  }, //根据距离设置比例
  "translucencyByDistance": {
    "near": 0, //最近距离
    "nearValue": 0, //最近距离值
    "far": 1, //最远距离值
    "farValue": 0 //最远距离值
  }, //根据距离设置透明度
  "distanceDisplayCondition": {
    "near": 0, //最近距离
    "far": Number.MAX_VALUE //最远距离
  }, //根据距离设置可见
  "disableDepthTestDistance": 0 // 深度检测距离,用于防止剪切地形,设置为零时,将始终应用深度测试。设置为Number.POSITIVE_INFINITY时,永远不会应用深度测试。
}
```
- **_fromEntity(entity,text)_**
  Entity 转换为 Overlay
  - 参数
    - `{Object} entity`:Cesium 覆盖物
    - `{String} text`:文本
  - 返回值 `label`
## DC.Circle
> 圆要素,继承于[Overlay](#overlay)
### example
```js
let position = new DC.Position(120, 20)
let circle = new DC.Circle(position, 200)
```
### creation
- **_constructor(center, radius)_**
  构造函数
  - 参数
    - `{Position|String|Array|Object} center`:圆心
    - `{String} radius`:半径
  - 返回值 `billboard`
### properties
- `{Position} center`:圆心
- `{String} radius`:半径
### methods
- **_setStyle(style)_**
  设置样式
  - 参数
    - `{Object} style`:样式,详情参考:[EllipseGraphics](http://resource.dvgis.cn/cesium-docs/EllipseGraphics.html)
  - 返回值 `this`
```json
// 样式参数(可选)
{
  "height": 1, //高度
  "heightReference": 0, //高度参照,0:位置无参照,位置是绝对的,1:位置固定在地形上 2:位置高度是指地形上方的高度。
  "extrudedHeight": 0, //拉升高度
  "rotation": 0, //顺时针旋转角度
  "stRotation": 0, //逆时针旋转角度
  "fill": true, //是否用提供的材料填充多边形。
  "material": DC.Color.WHITE, //材质
  "outline": false, //是否显示边框
  "outlineColor": DC.Color.BLACK, //边框颜色
  "outlineWidth": 0, //边框宽度
  "shadows": 0, //阴影类型,0:禁用、1:启用 、2:投射、3:接受
  "distanceDisplayCondition": {
    "near": 0, //最近距离
    "far": Number.MAX_VALUE //最远距离
  }, //根据距离设置可见
  "classificationType": 2, //分类 是否影响地形,3D切片或同时影响这两者。0:地形、1:3D切片、2:两者
  "zIndex": 0 //层级
}
```
## DC.Rect
> 矩形要素,继承于[Overlay](#overlay)
### example
```js
let rectangle = new DC.Rect('-90.0,32.0;-94.0,36.0;')
```
### creation
- **_constructor(positions)_**
  构造函数
  - 参数
    - `{String|Array<Position|Number|String>} positions`:坐标串
  - 返回值 `rectangle`
### properties
- `{String|Array<Position|Number|String>} positions`:坐标串
### methods
- **_setStyle(style)_**
  设置样式
  - 参数
    - `{Object} style`:样式,详情参考:[RectangleGraphics](http://resource.dvgis.cn/cesium-docs/RectangleGraphics.html)
  - 返回值 `this`
```json
// 样式参数(可选)
{
  "height": 1, //高度
  "heightReference": 0, //高度参照,0:位置无参照,位置是绝对的,1:位置固定在地形上 2:位置高度是指地形上方的高度。
  "extrudedHeight": 0, //拉升高度
  "rotation": 0, //顺时针旋转角度
  "stRotation": 0, //逆时针旋转角度
  "fill": true, //是否用提供的材料填充多边形。
  "material": DC.Color.WHITE, //材质
  "outline": false, //是否显示边框
  "outlineColor": DC.Color.BLACK, //边框颜色
  "outlineWidth": 0, //边框宽度
  "shadows": 0, //阴影类型,0:禁用、1:启用 、2:投射、3:接受
  "distanceDisplayCondition": {
    "near": 0, //最近距离
    "far": Number.MAX_VALUE //最远距离
  }, //根据距离设置可见
  "classificationType": 2, //分类 是否影响地形,3D切片或同时影响这两者。0:地形、1:3D切片、2:两者
  "zIndex": 0 //层级
}
```
## DC.Wall
> 墙体要素,继承于[Overlay](#overlay)
### example
```js
let wall = new DC.Wall('-90.0,32.0,1000;-94.0,36.0,1000;')
```
### creation
- **_constructor(positions)_**
  构造函数
  - 参数
    - `{String|Array<Position|Number|String>} positions`:坐标串
  - 返回值 `wall`
### properties
- `{String|Array<Position|Number|String>} positions`:坐标串
### methods
- **_setStyle(style)_**
  设置样式
  - 参数
    - `{Object} style`:样式,详情参考:[WallGraphics](http://resource.dvgis.cn/cesium-docs/WallGraphics.html)
  - 返回值 `this`
```json
// 样式参数(可选)
{
  "fill": true, //是否用提供的材料填充多边形。
  "material": DC.Color.WHITE, //材质
  "outline": false, //是否显示边框
  "outlineColor": DC.Color.BLACK, //边框颜色
  "outlineWidth": 0, //边框宽度
  "shadows": 0, //阴影类型,0:禁用、1:启用 、2:投射、3:接受
  "distanceDisplayCondition": {
    "near": 0, //最近距离
    "far": Number.MAX_VALUE //最远距离
  }, //根据距离设置可见
  "classificationType": 2 //分类 是否影响地形,3D切片或同时影响这两者。0:地形、1:3D切片、2:两者
}
```
- **_fromEntity(entity)_**
  Entity 转换为 Overlay
  - 参数
    - `{Object} entity`:Cesium 覆盖物
  - 返回值 `wall`
## DC.Model
> 模型要素,继承于[Overlay](#overlay)
### example
```js
let position = new DC.Position(120, 20)
let model = new DC.Model(position, '**/**.glb')
```
### creation
- **_constructor(position, modelUrl)_**
  构造函数
  - 参数
    - ``{Position|String|Array|Object} position`:坐标
    - `{String} modelUrl`:模型地址
  - 返回值 `model`
### properties
- `{Position} position`:坐标
- `{String} modelUrl`:模型地址
### methods
- **_setStyle(style)_**
  设置样式
  - 参数
    - `{Object} style`:样式,详情参考:[ModelGraphics](http://resource.dvgis.cn/cesium-docs/ModelGraphics.html)
  - 返回值 `this`
```json
// 样式参数(可选)
{
  "scale": 1, //比例
  "minimumPixelSize": 0, //指定模型的最小像素大小,而不考虑缩放
  "maximumScale": 0, //指定模型的最大比例
  "heightReference": 0, //高度参照,0:位置无参照,位置是绝对的,1:位置固定在地形上 2:位置高度是指地形上方的高度。
  "shadows": 0, //阴影类型,0:禁用、1:启用 、2:投射、3:接受
  "silhouetteColor": DC.Color.RED, //轮廓颜色
  "silhouetteSize": 0, //轮廓宽度
  "lightColor": DC.Color.RED, //模型着色时指定灯光颜色
  "distanceDisplayCondition": {
    "near": 0, //最近距离
    "far": Number.MAX_VALUE //最远距离
  } //根据距离设置可见
}
```
- **_fromEntity(entity,modelUrl)_**
  Entity 转换为 Overlay
  - 参数
    - `{Object} entity`:Cesium 覆盖物
    - `{String} modelUrl`:模型地址
  - 返回值 `model`
## DC.Tileset
> 3Dtiles 模型要素,继承于[Overlay](#overlay)
### example
```js
let position = new DC.Position(120, 20)
let tileset = new DC.Tileset('**/tileset.json')
tileset.setPosition(position)
```
### creation
- **_constructor(url,[options])_**
  构造函数
  - 参数
    - `{String} url`:模型地址
    - `{Object} options`:参数设置,详情参考:[Tileset](http://resource.dvgis.cn/cesium-docs/Cesium3DTileset.html)
  - 返回值 `tileset`
### properties
- `{Promise} readyPromise`:加载完成后的异步函数 **_`readonly`_**
### methods
- **_setStyle(style)_**
  设置样式
  - 参数
    - `{Object} style`:样式,详情参考:[TileStyle](https://github.com/CesiumGS/3d-tiles/tree/master/specification/Styling)
  - 返回值 `this`
  ```js
  let style = new DC.TilesetStyle({
    color: {
      conditions: [
        ['${Height} >= 100', 'color("purple", 0.5)'], //Height 为模型设置的属性
        ['${Height} >= 50', 'color("red")'],
        ['true', 'color("blue")'],
      ],
    },
    show: '${Height} > 0',
  })
  ```
- **_setPosition(position)_**
  设置位置
  - 参数
    - `{Position|String|Array|Object} position`:位置
  - 返回值 `this`
- **_setHeadingPitchRoll(heading, pitch, roll)_**
  设置方位角
  - 参数
    - `{Number} heading`:偏航角度,可能其他框架作 yaw,表示绕 Z 轴旋转。默认:0
    - `{Number} pitch`:俯仰角度,表示绕 Y 轴旋转。默认:0
    - `{Number} roll`:翻转角度,表示绕 X 轴旋转。默认:0
  - 返回值 `this`
- **_setHeight(height,isAbsolute)_**
  设置高度
  - 参数
    - `{Number} height`:高度
    - `{Boolean} isAbsolute`:是否为绝对高度,如果为 true,将不根据模型中心高度计算
  - 返回值 `this`
- **_setScale(scale)_**
  设置比例
  - 参数
    - `{Number} scale`:比例
  - 返回值 `this`
- **_setCustomShader(customShader)_**
  设置自定义片元着色器
  - 参数
    - `{String} customShader`:片元着色器
  - 返回值 `this`
- **_setProperties(properties)_**
  根据现有的属性添加属性
  - 参数
    - `{Array<Object>} properties`: 属性
  - 返回值 `this`
```json
//属性参数
{
  "key": "name", //已有属性名称
  "keyValue": "1", //已有属性值
  "propertyName": "highlight", //新增属性名称
  "propertyValue": true //新增属性值
}
```
## DC.DivIcon
> DivIcon 要素,继承于[Overlay](#overlay)
### example
```js
let position = new DC.Position(120, 20)
let divIcon = new DC.DivIcon(position, '<div></div>')
```
### creation
- **_constructor(position, content)_**
  构造函数
  - 参数
    - `{Position|String|Array|Object} position`:坐标
    - `{String|Element} content`:内容
  - 返回值 `divIcon`
### properties
- `{Position|String|Array} position`:坐标
- `{String|Element} content`:内容 **_`writeOnly`_**
### methods
- **_setStyle(style)_**
  设置样式
  - 参数
    - `{Object} style`:样式,
  - 返回值 `this`
```json
{
  "className": "test", //样式名
  "scaleByDistance": {
    "near": 0, //最近距离
    "nearValue": 0, //最近距离值
    "far": 1, //最远距离值
    "farValue": 0 //最远距离值
  }, //根据距离设置比例
  "distanceDisplayCondition": {
    "near": 0, //最近距离
    "far": Number.MAX_VALUE //最远距离
  } //根据距离设置可见
}
```
- **_fromEntity(entity,content)_**
  Entity 转换为 Overlay
  - 参数
    - `{Object} entity`:Cesium 覆盖物
    - `{String|Element} content`:内容
  - 返回值 `divIcon`
## DC.Box
> 盒要素,继承于[Overlay](#overlay)
### example
```js
let position = new DC.Position(120, 20)
let box = new DC.Box(position, 20, 30, 40)
```
### creation
- **_constructor(position, length, width, height)_**
  构造函数
  - 参数
    - `{Position|String|Array|Object} position`:坐标
    - `{Number} length`:长度
    - `{Number} width`:宽度
    - `{Number} height`:高度
  - 返回值 `box`
### properties
- `{Position} position`:坐标
- `{Number} length`:长度
- `{Number} width`:宽度
- `{Number} height`:高度
### methods
- **_setStyle(style)_**
  设置样式
  - 参数
    - `{Object} style`:样式,详情参考:[BoxGraphics](http://resource.dvgis.cn/cesium-docs/BoxGraphics.html)
  - 返回值 `this`
```json
{
  "heightReference": 0, //高度参照,0:位置无参照,位置是绝对的,1:位置固定在地形上 2:位置高度是指地形上方的高度。
  "fill": true, //是否用提供的材料填充多边形。
  "material": DC.Color.WHITE, //材质
  "outline": false, //是否显示边框
  "outlineColor": DC.Color.BLACK, //边框颜色
  "outlineWidth": 0, //边框宽度
  "shadows": 0, //阴影类型,0:禁用、1:启用 、2:投射、3:接受
  "distanceDisplayCondition": {
    "near": 0, //最近距离
    "far": Number.MAX_VALUE //最远距离
  } //根据距离设置可见
}
```
## DC.Corridor
> 走廊要素,继承于[Overlay](#overlay)
### example
```js
let corridor = new DC.Corridor('120,20;120,30')
corridor.setStyle({
  width: 10,
})
```
### creation
- **_constructor(positions)_**
  构造函数
  - 参数
    - `{String|Array<Position|Number|String|Object>} positions`:坐标串
  - 返回值 `corridor`
### properties
- `{Array<Position>} positions`:坐标串
### methods
- **_setStyle(style)_**
  设置样式
  - 参数
    - `{Object} style`:样式,详情参考:[CorridorGraphics](http://resource.dvgis.cn/cesium-docs/CorridorGraphics.html)
  - 返回值 `this`
```json
// 样式参数(可选)
{
  "width": 1, //线宽
  "height": 0, //高度
  "heightReference": 0, //高度参照,0:位置无参照,位置是绝对的,1:位置固定在地形上 2:位置高度是指地形上方的高度。
  "cornerType": 0, //转角类别,0:圆角、1:直角、2:斜角
  "fill": true, //是否用提供的材料填充多边形。
  "material": DC.Color.WHITE, //材质
  "outline": false, //是否显示边框
  "outlineColor": DC.Color.BLACK, //边框颜色
  "outlineWidth": 0, //边框宽度
  "shadows": 0, //阴影类型,0:禁用、1:启用 、2:投射、3:接受
  "distanceDisplayCondition": {
    "near": 0, //最近距离
    "far": Number.MAX_VALUE //最远距离
  }, //根据距离设置可见
  "classificationType": 2, //分类 是否影响地形,3D切片或同时影响这两者。0:地形、1:3D切片、2:两者
  "zIndex": 0 //层级
}
```
- **_fromEntity(entity)_**
  Entity 转换为 Overlay
  - 参数
    - `{Object} entity`:Cesium 覆盖物
  - 返回值 `corridor`
## DC.Cylinder
> 圆柱要素,继承于[Overlay](#overlay)
### example
```js
let position = new DC.Position(120, 20)
let cylinder = new DC.Cylinder(position, 20, 30, 40)
```
### creation
- **_constructor(position, length, topRadius, bottomRadius)_**
  构造函数
  - 参数
    - `{Position|Number|String|Object} position`:坐标
    - `{Number} length`:长度
    - `{Number} topRadius`:上半径
    - `{Number} bottomRadius`:下半径
  - 返回值 `cylinder`
### properties
- `{Position} position`:坐标
- `{Number} length`:长度
- `{Number} topRadius`:上半径
- `{Number} bottomRadius`:下半径
### methods
- **_setStyle(style)_**
  设置样式
  - 参数
    - `{Object} style`:样式,详情参考:[CylinderGraphics](http://resource.dvgis.cn/cesium-docs/CylinderGraphics.html)
  - 返回值 `this`
```json
// 样式参数(可选)
{
  "heightReference": 0, //高度参照,0:位置无参照,位置是绝对的,1:位置固定在地形上 2:位置高度是指地形上方的高度。
  "fill": true, //是否用提供的材料填充多边形。
  "material": DC.Color.WHITE, //材质
  "outline": false, //是否显示边框
  "outlineColor": DC.Color.BLACK, //边框颜色
  "outlineWidth": 0, //边框宽度
  "shadows": 0, //阴影类型,0:禁用、1:启用 、2:投射、3:接受
  "distanceDisplayCondition": {
    "near": 0, //最近距离
    "far": Number.MAX_VALUE //最远距离
  } //根据距离设置可见
}
```
## DC.Ellipse
> 椭圆要素,继承于[Overlay](#overlay)
### example
```js
let position = new DC.Position(120, 20)
let ellipse = new DC.Ellipse(position, 20, 30)
```
### creation
- **_constructor(position, semiMajorAxis, semiMinorAxis)_**
  构造函数
  - 参数
    - `{Position|Number|String|Object} position`:坐标
    - `{Number} semiMajorAxis`:长半轴
    - `{Number} semiMinorAxis`:短半轴
  - 返回值 `ellipse`
### properties
- `{Position} position`:坐标
- `{Number} semiMajorAxis`:长半轴
- `{Number} semiMinorAxis`:短半轴
### methods
- **_setStyle(style)_**
  设置样式
  - 参数
    - `{Object} style`:样式,详情参考:[EllipseGraphics](http://resource.dvgis.cn/cesium-docs/EllipseGraphics.html)
  - 返回值 `this`
```json
// 样式参数(可选)
{
  "height": 1, //高度
  "heightReference": 0, //高度参照,0:位置无参照,位置是绝对的,1:位置固定在地形上 2:位置高度是指地形上方的高度。
  "extrudedHeight": 0, //拉升高度
  "rotation": 0, //顺时针旋转角度
  "stRotation": 0, //逆时针旋转角度
  "fill": true, //是否用提供的材料填充多边形。
  "material": DC.Color.WHITE, //材质
  "outline": false, //是否显示边框
  "outlineColor": DC.Color.BLACK, //边框颜色
  "outlineWidth": 0, //边框宽度
  "shadows": 0, //阴影类型,0:禁用、1:启用 、2:投射、3:接受
  "distanceDisplayCondition": {
    "near": 0, //最近距离
    "far": Number.MAX_VALUE //最远距离
  }, //根据距离设置可见
  "classificationType": 2, //分类 是否影响地形,3D切片或同时影响这两者。0:地形、1:3D切片、2:两者
  "zIndex": 0 //层级
}
```
## DC.Ellipsoid
> 球体要素,继承于[Overlay](#overlay)
### example
```js
let position = new DC.Position(120, 20)
let ellipsoid = new DC.Ellipsoid(position, { x: 30, y: 30, z: 30 })
```
### creation
- **_constructor(position, radius)_**
  构造函数
  - 参数
    - `{Position|Number|String|Object} position`:坐标
    - `{Object} radius`:半径,格式是:`{x: 30, y: 30, z: 30}`
  - 返回值 `ellipsoid`
### properties
- `{Position} position`:坐标
- `{Object} radius`:半径,格式是:`{x: 30, y: 30, z: 30}`
### methods
- **_setStyle(style)_**
  设置样式
  - 参数
    - `{Object} style`:样式,详情参考:[EllipsoidGraphics](http://resource.dvgis.cn/cesium-docs/EllipsoidGraphics.html)
  - 返回值 `this`
  ```json
  // 样式参数(可选)
  {
    "heightReference": 0, //高度参照,0:位置无参照,位置是绝对的,1:位置固定在地形上 2:位置高度是指地形上方的高度。
    "fill": true, //是否用提供的材料填充多边形。
    "material": DC.Color.WHITE, //材质
    "outline": false, //是否显示边框
    "outlineColor": DC.Color.BLACK, //边框颜色
    "outlineWidth": 0, //边框宽度
    "shadows": 0, //阴影类型,0:禁用、1:启用 、2:投射、3:接受
    "distanceDisplayCondition": {
      "near": 0, //最近距离
      "far": Number.MAX_VALUE //最远距离
    } //根据距离设置可见
  }
  ```
## DC.Plane
> 平面要素,继承于[Overlay](#overlay)
### example
```js
let position = new DC.Position(120, 20)
let plane = new DC.Plane(position, 20, 30, { normal: 'x' })
```
### creation
- **_constructor(position, width, height, direction)_**
  构造函数
  - 参数
    - `{Position|Number|String|Object} position`:坐标
    - `{Number} width`:宽度
    - `{Number} height`:高度
    - `{Object} plane`:面板格式
  - 返回值 `plane`
```json
// 面板参数(可选)
{
  "normal": "x", // 法线,x,y,z其中一个
  "distance": 0 // 距离
}
```
### properties
- `{Position} position`:坐标
- `{Number} width`:宽度
- `{Number} height`:高度
- `{Number} distance`:距离
### methods
- **_setStyle(style)_**
  设置样式
  - 参数
    - `{Object} style`:样式,详情参考:[PlaneGraphics](http://resource.dvgis.cn/cesium-docs/PlaneGraphics.html)
  - 返回值 `this`
```json
// 样式参数(可选)
{
  "fill": true, //是否用提供的材料填充多边形。
  "material": DC.Color.WHITE, //材质
  "outline": false, //是否显示边框
  "outlineColor": DC.Color.BLACK, //边框颜色
  "outlineWidth": 0, //边框宽度
  "shadows": 0, //阴影类型,0:禁用、1:启用 、2:投射、3:接受
  "distanceDisplayCondition": {
    "near": 0, //最近距离
    "far": Number.MAX_VALUE //最远距离
  } //根据距离设置可见
}
```
## DC.PolylineVolume
> 管道要素,继承于[Overlay](#overlay)
### example
```js
function computeCircle(radius) {
  var positions = []
  for (var i = 0; i < 360; i++) {
    var radians = DC.Math.toRadians(i)
    positions.push({
      x: radius * Math.cos(radians),
      y: radius * Math.sin(radians),
    })
  }
  return positions
}
let polylineVolume = new DC.PolylineVolume(
  '-90.0,32.0,0.0;-90.0,36.0,100000.0;-94.0,36.0,0.0;',
  computeCircle(60000)
)
```
### creation
- **_constructor(positions, shape)_**
  构造函数
  - 参数
    - `{String|Array<Position|Number|String|Object>} positions`:坐标串
    - `{Array} shape`:形状
  - 返回值 `polylineVolume`
### properties
- `{Array<Position>} positions`:坐标串
- `{Array} shape`:形状
### methods
- **_setStyle(style)_**
  设置样式
  - 参数
    - `{Object} style`:样式,详情参考:[PolylineVolumeGraphics](http://resource.dvgis.cn/cesium-docs/PolylineVolumeGraphics.html)
  - 返回值 `this`
```json
// 样式参数(可选)
{
  "cornerType": 0, //转角类别,0:圆角、1:直角、2:斜角
  "fill": true, //是否用提供的材料填充多边形。
  "material": DC.Color.WHITE, //材质
  "outline": false, //是否显示边框
  "outlineColor": DC.Color.BLACK, //边框颜色
  "outlineWidth": 0, //边框宽度
  "shadows": 0, //阴影类型,0:禁用、1:启用 、2:投射、3:接受
  "distanceDisplayCondition": {
    "near": 0, //最近距离
    "far": Number.MAX_VALUE //最远距离
  } //根据距离设置可见
}
```
- **_fromEntity(entity)_**
  Entity 转换为 Overlay
  - 参数
    - `{Object} entity`:Cesium 覆盖物
  - 返回值 `polylineVolume`
## DC.DynamicBillboard
> 动态图标,继承于[Overlay](#overlay)
### example
```js
let position = new DC.Position(120, 20)
let billboard = new DC.DynamicBillboard(position, '***/**.png')
billboard.size = [20, 20]
```
### creation
- **_constructor(position,icon)_**
  构造函数
  - 参数
    - `{Position|String|Array|Object} position`:坐标
    - `{String} icon`:图标地址
  - 返回值 `billboard`
### properties
- `{Position} position`:坐标 **_`readonly`_**
- `{String} icon`:图标地址
- `{Array<Number>} size`:图标大小
### methods
- **_addPosition(position,interval)_**
  添加点位
  - 参数
    - `{Position|Array|String|Object} position`:点位
    - `{Number} interval`:间隔,单位:秒
  - 返回值 `this`
- **_setStyle(style)_**
  设置样式
  - 参数
    - `{Object} style`:样式,详情参考:[BillboardGraphics](http://resource.dvgis.cn/cesium-docs/BillboardGraphics.html)
  - 返回值 `this`
```json
// 样式参数(可选)
{
  "heightReference": 0, //高度参照,0:位置无参照,位置是绝对的,1:位置固定在地形上 2:位置高度是指地形上方的高度。
  "scale": 1, //比例
  "pixelOffset": { "x": 0, "y": 0 }, //偏移像素
  "rotation": 0, //旋转角度
  "translucencyByDistance": {
    "near": 0, //最近距离
    "nearValue": 0, //最近距离值
    "far": 1, //最远距离值
    "farValue": 0 //最远距离值
  }, //根据距离设置透明度
  "scaleByDistance": {
    "near": 0, //最近距离
    "nearValue": 0, //最近距离值
    "far": 1, //最远距离值
    "farValue": 0 //最远距离值
  }, //根据距离设置比例
  "distanceDisplayCondition": {
    "near": 0, //最近距离
    "far": Number.MAX_VALUE //最远距离
  }, //根据距离设置可见
  "disableDepthTestDistance": 0 // 深度检测距离,用于防止剪切地形,设置为零时,将始终应用深度测试。设置为Number.POSITIVE_INFINITY时,永远不会应用深度测试。
}
```
## DC.DynamicModel
> 动态模型要素,继承于[Overlay](#overlay)
### example
```js
let position = new DC.Position(120, 20)
let model = new DC.DynamicModel(position, '**/**.glb')
```
### creation
- **_constructor(position, modelUrl)_**
  构造函数
  - 参数
    - `{Position|String|Array|Object} position`:坐标
    - `{String} modelUrl`:模型地址
  - 返回值 `model`
### properties
- `{Position} position`:坐标 **_`readonly`_**
- `{String} modelUrl`:模型地址
### methods
- **_addPosition(position,interval)_**
  添加点位
  - 参数
    - `{Position|Array|String|Object} position`:点位
    - `{Number} interval`:间隔,单位:秒
  - 返回值 `this`
- **_setStyle(style)_**
  设置样式
  - 参数
    - `{Object} style`:样式,详情参考:[ModelGraphics](http://resource.dvgis.cn/cesium-docs/ModelGraphics.html)
  - 返回值 `this`
```json
// 样式参数(可选)
{
  "scale": 1, //比例
  "minimumPixelSize": 0, //指定模型的最小像素大小,而不考虑缩放
  "maximumScale": 0, //指定模型的最大比例
  "heightReference": 0, //高度参照,0:位置无参照,位置是绝对的,1:位置固定在地形上 2:位置高度是指地形上方的高度。
  "shadows": 0, //阴影类型,0:禁用、1:启用 、2:投射、3:接受
  "silhouetteColor": DC.Color.RED, //轮廓颜色
  "silhouetteSize": 0, //轮廓宽度
  "lightColor": DC.Color.RED, //模型着色时指定灯光颜色
  "distanceDisplayCondition": {
    "near": 0, //最近距离
    "far": Number.MAX_VALUE //最远距离
  } //根据距离设置可见
}
```
## DC.CustomBillboard
> 自定义图标,继承于[Overlay](#overlay)
### example
```js
let position = new DC.Position(120, 20)
let billboard = new DC.CustomBillboard(position, '***/**.png')
billboard.size = [20, 20]
```
### creation
- **_constructor(position,icon)_**
  构造函数
  - 参数
    - `{Position|String|Array|Object} position`:坐标
    - `{String} icon`:图标地址
  - 返回值 `billboard`
### properties
- `{Position} position`:坐标
- `{String} icon`:图标地址
- `{Array<Number>} size`:图标大小
### methods
- **_setVLine(style)_**
  设置垂直线
  - 参数
    - `{Object} style`:样式,详情参考:[PolylineGraphics](http://resource.dvgis.cn/cesium-docs/PolylineGraphics.html)
  - 返回值 `this`
- **_setBottomCircle(radius,style,rotateAmount)_**
  设置底圆
  - 参数
    - `{Number} radius`:半径
    - `{Object} style`:样式,详情参考:[EllipseGraphics](http://resource.dvgis.cn/cesium-docs/EllipseGraphics.html)
    - `{Number} rotateAmount`:旋转量
  - 返回值 `this`
- **_setStyle(style)_**
  设置样式
  - 参数
    - `{Object} style`:样式,详情参考:[BillboardGraphics](http://resource.dvgis.cn/cesium-docs/BillboardGraphics.html)
  - 返回值 `this`
```json
// 样式参数(可选)
{
  "heightReference": 0, //高度参照,0:位置无参照,位置是绝对的,1:位置固定在地形上 2:位置高度是指地形上方的高度。
  "scale": 1, //比例
  "pixelOffset": { "x": 0, "y": 0 }, //偏移像素
  "rotation": 0, //旋转角度
  "translucencyByDistance": {
    "near": 0, //最近距离
    "nearValue": 0, //最近距离值
    "far": 1, //最远距离值
    "farValue": 0 //最远距离值
  }, //根据距离设置透明度
  "scaleByDistance": {
    "near": 0, //最近距离
    "nearValue": 0, //最近距离值
    "far": 1, //最远距离值
    "farValue": 0 //最远距离值
  }, //根据距离设置比例
  "distanceDisplayCondition": {
    "near": 0, //最近距离
    "far": Number.MAX_VALUE //最远距离
  }, //根据距离设置可见
  "disableDepthTestDistance": 0 // 深度检测距离,用于防止剪切地形,设置为零时,将始终应用深度测试。设置为Number.POSITIVE_INFINITY时,永远不会应用深度测试。
}
```
## DC.CustomLabel
> 自定义文本,继承于[Overlay](#overlay)
### example
```js
let position = new DC.Position(120, 20)
let label = new DC.CustomLabel(position, 'test')
```
### creation
- **_constructor(position,text)_**
  构造函数
  - 参数
    - `{Position|String|Array|Object} position`:坐标
    - `{String} text`:文本
  - 返回值 `label`
### properties
- `{Position} position`:坐标
- `{String} text`:文本
### methods
- **_setVLine(style)_**
  设置垂直线
  - 参数
    - `{Object} style`:样式,详情参考:[PolylineGraphics](http://resource.dvgis.cn/cesium-docs/PolylineGraphics.html)
  - 返回值 `this`
- **_setBottomCircle(radius,style,rotateAmount)_**
  设置底圆
  - 参数
    - `{Number} radius`:半径
    - `{Object} style`:样式,详情参考:[EllipseGraphics](http://resource.dvgis.cn/cesium-docs/EllipseGraphics.html)
    - `{Number} rotateAmount`:旋转量
  - 返回值 `this`
- **_setStyle(style)_**
  设置样式
  - 参数
    - `{Object} style`:样式,详情参考:[LabelGraphics](http://resource.dvgis.cn/cesium-docs/LabelGraphics.html)
  - 返回值 `this`
```json
// 样式参数(可选)
{
  "heightReference": 0, //高度参照,0:位置无参照,位置是绝对的,1:位置固定在地形上 2:位置高度是指地形上方的高度。
  "scale": 1, //比例
  "pixelOffset": { "x": 0, "y": 0 }, //偏移像素
  "rotation": 0, //旋转角度
  "translucencyByDistance": {
    "near": 0, //最近距离
    "nearValue": 0, //最近距离值
    "far": 1, //最远距离值
    "farValue": 0 //最远距离值
  }, //根据距离设置透明度
  "scaleByDistance": {
    "near": 0, //最近距离
    "nearValue": 0, //最近距离值
    "far": 1, //最远距离值
    "farValue": 0 //最远距离值
  }, //根据距离设置比例
  "distanceDisplayCondition": {
    "near": 0, //最近距离
    "far": Number.MAX_VALUE //最远距离
  }, //根据距离设置可见
  "disableDepthTestDistance": 0 // 深度检测距离,用于防止剪切地形,设置为零时,将始终应用深度测试。设置为Number.POSITIVE_INFINITY时,永远不会应用深度测试。
}
```
 |