# 基础 API 🌎
## DC.Viewer
> 3D 场景主要接口,在给定的 DivId 中构建三维场景
### example
```html
```
```js
let viewer = DC.Viewer('viewer-container')
global.viewer = viewer // 添加到全局变量
```
:::warning
如果开发使用的是 Vue 这样的 MVVM 框架,不要将 viewer、layer、overlay 添加到数据模型中。由于 3D
场景中会不停的刷新每一帧,如果将数据添加到数据模型中,长时间的话会导致浏览器的压力增大而奔溃。
:::
### creation
- **_constructor(container,[options])_**
构造函数
- 参数
- `{String | Cesium.Viewer } container`:容器
- `{Object} options`:属性
- 返回值 `viewer`
```js
//属性参数(可选)
const config = {
contextOptions: {
webgl: {
alpha: false, // 背景缓冲区是否包含 alpha 通道
depth: true, // 开启深度缓冲区(通常必须开启,否则无法正确遮挡)
stencil: true, // 是否启用模板缓冲。false 可以节省显存和性能
antialias: true, // 是否启用抗锯齿
powerPreference: 'high-performance', // 提示浏览器优先用独显或性能更高的 GPU
premultipliedAlpha: true, // 颜色预乘 alpha,
preserveDrawingBuffer: false, // 渲染后是否保留缓冲内容。false 性能更好,但不能直接保存截图
failIfMajorPerformanceCaveat: false, // 避免低性能环境直接报错
},
allowTextureFilterAnisotropic: true, // 启用各向异性纹理过滤,提高贴图锐度
},
sceneMode: 3, //1: 2.5D,2: 2D,3: 3D
enableEventPropagation: false, //是否开启鼠标事件冒泡
enableMouseMovePick: false, // 是否开启鼠标移动拾取功能,开启后当覆盖物较多的情况下,帧率会下降
enableMouseOver: false, //是否开启鼠标移入事件,需要开启鼠标移动拾取功能
}
```
### properties
- `{Element} container`:场景容器 **_`readonly`_**
- `{Element} widgetContainer`:场景组件容器 **_`readonly`_**
- `{Element} layerContainer`:场景图层容器 **_`readonly`_**
- `{Object} scene`:场景 **_`readonly`_**,[详细使用说明](http://resource.dvgis.cn/cesium-docs/Scene.html)
- `{Object} camera`:相机 **_`readonly`_**,[详细使用说明](http://resource.dvgis.cn/cesium-docs/Scene.html)
- `{Element} canvas`:canvas 节点 **_`readonly`_**
- `{Object} clock`:时钟,[详细使用说明](http://resource.dvgis.cn/cesium-docs/Clock.html)
- `{Object} dataSources` :数据资源集合,[详细使用说明](http://resource.dvgis.cn/cesium-docs/DataSourceCollection.html)
- `{Object} imageryLayers`:瓦片集合,[详细使用说明](http://resource.dvgis.cn/cesium-docs/ImageryLayerCollection.html)
- `{Object} entities`:实体集合,[详细使用说明](http://resource.dvgis.cn/cesium-docs/EntityCollection.html)
- [`{Popup} popup`](#popup):气泡窗口 **_`readonly`_**
- [`{ContextMenu} contextMenu`](#contextmenu):右击弹框 **_`readonly`_**
- [`{Tooltip} tooltip`](#tooltip):提示框 **_`readonly`_**
- [`{MapSplit} mapSplit`](#mapsplit):地图分割 **_`readonly`_**
- [`{TilesetSplit} tilesetSplit`](#tilesetsplit):模型分割 **_`readonly`_**
- [`{SceneSplit} sceneSplit`](#scenesplit):场景分割 **_`readonly`_**
- [`{Compass} compass`](#compass):罗盘 **_`readonly`_**
- [`{ZoomController} zoomController`](#zoomcontroller):罗盘 **_`readonly`_**
- [`{LocationBar} locationBar`](#locationbar):坐标信息 **_`readonly`_**
- [`{DistanceLegend} distanceLegend`](#distancelegend):比例尺 **_`readonly`_**
- [`{LoadingMask} loadingMask`](#loadingmask):加载蒙层 **_`readonly`_**
- `{Position} cameraPosition`:相机位置 **_`readonly`_**
- `{Number} resolution`:分辨率 **_`readonly`_**
- `{Number} zoom`: 当前层级 **_`readonly`_**
- `{Rect} viewBounds`:视野范围 **_`readonly`_**
- `{Boolean} enableEventPropagation`: 是否开启鼠标事件冒泡
- `{Boolean} enableMouseMovePick`: 是否开启鼠标移动拾取功能,开启后当覆盖物较多的情况下,帧率会下降
- `{Boolean} enableMouseOver`: 是否开启鼠标移入事件,需要开启鼠标移动拾取功能
### methods
- **_setOptions(options)_**
设置属性
- 参数
- `{Object} options`:属性对象
- 返回值 `this`
```js
// 属性参数(属性可选)
const config = {
shadows: false, // 是否开启阴影
resolutionScale: 1, // 设置渲染分辨率的缩放比例
showAtmosphere: true, //是否显示大气层
showSun: true, //是否显示太阳
showMoon: true, //是否显示月亮
enableFxaa: true, //是否开启抗锯齿
msaaSamples: 1, //msaa抗拒出取样度
cameraController: {
// 相机控制
enableRotate: true, // 是否可以旋转
enableTilt: true, // 是否可以翻转
enableTranslate: true, // 是否可以平移
enableZoom: true, // 是否可以缩放
enableCollisionDetection: true, // 是否支持碰撞检测
minimumZoomDistance: 1.0, // 最小缩放距离
maximumZoomDistance: 40489014.0, // 最大缩放距离
},
globe: {
show: true, // 是否显示地球
showGroundAtmosphere: true, // 显示地面大气
enableLighting: false, //是否开启灯光,开启后地球会根据当前时间启用灯光
depthTestAgainstTerrain: false, //是否开启深度测试
tileCacheSize: 100, // 默认瓦片缓存大小
preloadSiblings: false, //是否应预加载渲染同级图块
terrainExaggeration: 1, //地形夸张系数
terrainExaggerationRelativeHeight: 1, //地形相对高度夸张系数
baseColor: new DC.Color(0, 0, 0.5, 1), //地球默认底色
filterColor: newDC.Color(0, 0, 0, 0), //瓦片过滤色,设置后不可逆
translucency: {
//地表透明
enabled: false, // 是否开启地表透明
backFaceAlpha: 1, // 地球背面透明度
backFaceAlphaByDistance: null, //根据距离设置地球背面透明度: {near:400,nearValue:0.2,far:800,farValue:1}
frontFaceAlpha: 1, // 地球正面透明度
frontFaceAlphaByDistance: null, //根据距离设置地球正面透明度: {near:400,nearValue:0.2,far:800,farValue:1}
},
},
skyBox: {
sources: {}, // 六个面的贴图
show: true, //是否显示
offsetAngle: 0, //旋转角度
},
}
```
- **_setPitchRange(min,max)_**
设置翻转角度
- 参数
- `{Number} min`:最小角度
- `{Number} max`:最大角度
- 返回值 `this`
- **_changeSceneMode(sceneMode, duration)_**
改变场景模式
- 参数
- `{Number} sceneMode`:场景模式 ,2:2D,3:3D,2.5:2.5D
- `{Number} duration`:间隔时间
- 返回值 `this`
- **_changeMouseMode(mouseMode)_**
改变鼠标使用模式
- 参数
- `{Number} mouseMode`:鼠标模式,详情参考:`DC.MouseMode`
- 返回值 `this`
- **_addBaseLayer(baseLayers,options)_**
添加地图
- 参数
- `{baseLayer|Array} baseLayers`:地图
- `{Object} options`:属性
- 返回值 `this`
```js
//属性参数 (属性可选)
const options = {
name: '电子地图', //名称
iconUrl: '../preview.png', //缩略图
alpha: 1.0,
nightAlpha: 1.0,
dayAlpha: 1.0,
brightness: 1.0,
contrast: 1.0,
hue: 1.0,
saturation: 1.0,
gamma: 1.0,
}
```
- **_changeBaseLayer(index)_**
更改地图
- 参数
- `{Number} index`:地图索引
- 返回值 `this`
- **_getImageryLayerInfo(windowPosition)_**
获取瓦片信息
- 参数
- `{Object} windowPosition`:窗口坐标
- 返回值 `promise`
- **_setTerrain(terrain)_**
设置地形
- 参数
- `{Terrain} terrain`:地形
- 返回值 `this`
- **_addLayerGroup(layerGroup)_**
添加图层组
- 参数
- `{LayerGroup} layerGroup`:图层组
- 返回值 `this`
- **_removeLayerGroup(layerGroup)_**
移除图层组
- 参数
- `{LayerGroup} layerGroup`:图层组
- 返回值 `this`
- **_getLayerGroup(id)_**
获取图层组
- 参数
- `{String} id`:图层组 ID
- 返回值 `layerGroup`
- **_addLayer(layer)_**
添加图层
- 参数
- `{Layer} layer`:图层
- 返回值 `this`
- **_removeLayer(layer)_**
删除图层
- 参数
- `{Layer} layer`:图层
- 返回值 `this`
- **_getLayer(id)_**
获取图层
- 参数
- `{String} id`:图层 ID
- 返回值 `layer`
- **_getLayers()_**
获取所有图层,不包括地图
- 返回值 `layer`
- **_eachLayer(method, context)_**
遍历所有图层
- 参数
- `{Function} method`:回调函数
- `{Object} context`:上下文,默认为 this
- 返回值 `this`
```js
viewer.eachLayer((layer) => {})
```
- **_flyTo(target,duration)_**
飞向目标
- 参数
- `{VectorLayer|Overlay} target` :目标
- `{Number} duration`:飞到位置时间,单位:秒
- 返回值 `this`
- **_zoomTo(target)_**
缩放到目标
- 参数
- `{VectorLayer|Overlay} target` :目标
- 返回值 `this`
- **_flyToPosition(position, completeCallback, duration)_**
飞到具体位置
- 参数
- `{Position} position`:位置
- `{Function} completeCallback`:飞完之后触发的回调
- `{Number} duration`:飞到位置时间,单位:秒
- 返回值 `this`
- **_zoomToPosition(position, completeCallback)_**
缩放到具体位置
- 参数
- `{DC.Position} position`:位置
- `{Function} completeCallback`:缩放完成后触发的回调
- 返回值 `this`
- **_flyToBounds(bounds,{heading,pitch,roll}, completeCallback, duration)_**
飞到指定的范围
- 参数
- `{String|Array} bounds`:范围,格式:[minX,minY,maxX,maxY]
- `{Object} hpr`:方位角
- `{Function} completeCallback`:飞完之后触发的回调
- `{Number} duration`:飞到位置时间,单位:秒
- 返回值 `this`
- **_zoomToBounds(bounds,{heading,pitch,roll}, completeCallback)_**
缩放到指定的范围
- 参数
- `{String|Array} bounds`:范围,格式:[minX,minY,maxX,maxY]
- `{Object} hpr`:方位角
- `{Function} completeCallback`:缩放完之后触发的回调
- 返回值 `this`
- **_on(type, callback, context)_**
事件订阅
- 参数
- `{Object} type` :订阅类型
- `{Function} callback` :订阅回调
- `{Object} context` :上下文
- 返回值 `this`
- **_once(type, callback, context)_**
事件订阅(一次)
- 参数
- `{Object} type` :订阅类型
- `{Function} callback` :订阅回调
- `{Object} context` :上下文
- 返回值 `this`
- **_off(type, callback, context)_**
取消事件订阅
- 参数
- `{Object} type` :订阅类型
- `{Function} callback` :订阅回调
- `{Object} context` :上下文
- 返回值 `this`
- **_destroy()_**
销毁三维场景
- 返回值 `this`
- **_exportScene(name)_**
导出场景
- 参数
- `{String} name` :名称,默认为 scene
- 返回值 `this`
## Popup
> 气泡窗口
### example
```js
let popup = viewer.popup
popup.setContent('')
```
### properties
- `{String} state`:状态 **_`readonly`_**
- `{Object} config`:配置 **_`writeOnly`_**
```js
// 配置(属性可选),配置后会影响全局的popup的显示样式,请慎重。
const config = {
position: 'center', // popup的位于鼠标的点击位置的方向,有:center,left ,right
customClass: 'custom', // 添加自定义的Css 类名到popup中,多个用空格隔开
}
```
### methods
- **_setPosition(position)_**
设置位置
- 参数
- `{Cartesian3} position`:世界坐标
- 返回值 `this`
- **_setContent(content)_**
设置内容
- 参数
- `{String|Element} content`:内容
- 返回值 `this`
- **_setWrapper(wrapper)_**
设置容器
- 参数
- `{Element} wrapper`:容器 **_`(一般用于 MVVM 框架的模板)`_**
- 返回值 `this`
- **_showAt(position, content)_**
设置内容
- 参数
- `{Cartesian3} position`:世界坐标
- `{String|Element} content`:内容
- 返回值 `this`
- **_hide()_**
隐藏气泡窗口
- 返回值 `this`
## ContextMenu
> 右击菜单
### example
```js
let contextMenu = viewer.contextMenu
contextMenu.enable = true
contextMenu.DEFAULT_MENU = [
{
label: '测试',
callback: (e) => {
}, // e是一个对象主要包括 windowPosition,position,surfacePosition,overlay
context: this,
},
] // 设置默认的右击菜单,会影响全局右击菜单(慎用)。
```
### properties
- `{Boolean} enable`:是否启用
- `{String} state`:状态 **_`readonly`_**
- `{Array} DEFAULT_MENU`:默认菜单,菜单的回调函数参数为一个对象 **_`writeOnly`_**
## Tooltip
> 提示框
### example
```js
let tooltip = viewer.tooltip
tooltip.enable = true
tooltip.showAt({ x: 100, y: 100 }, '测试')
```
### properties
- `{Boolean} enable`:是否启用
- `{String} state`:状态 **_`readonly`_**
### methods
- **_showAt(position,content)_**
设置位置
- 参数
- `{Cartesian2} position`:屏幕坐标
- `{String|Element} content`:内容
- 返回值 `this`
## MapSplit
> 地图分割
### examples
```js
let baseLayer_elc = DC.ImageryLayerFactory.createGoogleImageryLayer()
viewer.mapSplit.enable = true
viewer.mapSplit.addBaseLayer(baseLayer_elc, -1)
```
### properties
- `{Boolean} enable`:是否启用
- `{String} state`:状态 **_`readonly`_**
### methods
- **_addBaseLayer(baseLayer,[splitDirection])_**
添加地图
- 参数
- `{BaseLayer} baseLayer`:地图
- `{Number} splitDirection`:分割方向,-1:左,0:无,1:右
- 返回值 `this`
## TilesetSplit
> 模型分割
### examples
```js
let tileset = new DC.Tileset('**/tileset.json')
tileset.setSplitDirection(1)
viewer.tilesetSplit.enable = true
viewer.tilesetSplit.addTileset(tileset)
```
### properties
- `{Boolean} enable`:是否启用
- `{String} state`:状态 **_`readonly`_**
### methods
- **_addTileset(tileset)_**
添加地图
- 参数
- `{Tileset} tileset`:模型
- 返回值 `this`
## SceneSplit
> 场景分割
### examples
```js
let tileset = new DC.Tileset('**/tileset.json')
tileset.setSplitDirection(1)
viewer.sceneSplit.enable = true
viewer.sceneSplit.addTileset(tileset)
```
### properties
- `{Boolean} enable`:是否启用
- `{String} state`:状态 **_`readonly`_**
### methods
- **_addBaseLayer(baseLayer)_**
添加地图
- 参数
- `{BaseLayer} baseLayer`:地图
- 返回值 `this`
- **_addTileset(tileset)_**
添加地图
- 参数
- `{Tileset} tileset`:模型
- 返回值 `this`
## Compass
> 罗盘
### examples
```js
viewer.compass.enable = true
```
### properties
- `{Boolean} enable`:是否启用
- `{String} state`:状态 **_`readonly`_**
## ZoomController
> 缩放控制
### examples
```js
viewer.zoomController.enable = true
```
### properties
- `{Boolean} enable`:是否启用
- `{String} state`:状态 **_`readonly`_**
## LocationBar
> 坐标信息
### examples
```js
viewer.locationBar.enable = true
```
### properties
- `{Boolean} enable`:是否启用
- `{String} state`:状态 **_`readonly`_**
## DistanceLegend
> 比例尺
### examples
```js
viewer.distanceLegend.enable = true
```
### properties
- `{Boolean} enable`:是否启用
- `{String} state`:状态 **_`readonly`_**
## LoadingMask
> 加载蒙层
### examples
```js
viewer.loadingMask.enable = true
```
### properties
- `{Boolean} enable`:是否启用
- `{String} state`:状态 **_`readonly`_**
## DC.GroundSkyBox
> 近地天空盒,[详情参考](http://resource.dvgis.cn/cesium-docs/SkyBox.html)
### example
```js
scene.skyBox = new DC.GroundSkyBox({
sources: {
positiveX: 'skybox_px.png',
negativeX: 'skybox_nx.png',
positiveY: 'skybox_py.png',
negativeY: 'skybox_ny.png',
positiveZ: 'skybox_pz.png',
negativeZ: 'skybox_nz.png',
},
})
```
### creation
- **_constructor(id)_**
构造函数
- 参数
- `{Object} options`:配置
- 返回值 `skyBox`
```js
//options(属性可选)
const options = {
sources: {}, // 六个面的贴图
show: true, //显示
offsetAngle: 0, //旋转角度
}
```
### properties
- `{Object} sources`:六个面的贴图
- `{Boolean} show`:显示
- `{Number} offsetAngle`:旋转角度
## DC.Position
> 坐标类,用于描述物体在场景中的具体位置,采用右手标准
### example
```js
let position = new DC.Position(120, 22, 102)
let position1 = DC.Position.fromString('120,22,102')
let position2 = DC.Position.fromArray([120, 22, 102])
let position3 = DC.Position.fromObject({ lng: 120, lat: 22, height: 102 })
```
### creation
- **_constructor(lng,lat,alt,heading,pitch,roll)_**
构造函数
- 参数
- `{Number} lng`:经度
- `{Number} lat`:纬度
- `{Number} alt`:高度,单位:米,默认:0
- `{Number} heading`:偏航角度,可能其他框架作 yaw,表示绕 Z 轴旋转。默认:0
- `{Number} pitch`:俯仰角度,表示绕 Y 轴旋转。默认:0
- `{Number} roll`:翻转角度,表示绕 X 轴旋转。默认:0
- 返回值 `position`
### properties
- `{Number} lng`:经度
- `{Number} lat`:纬度
- `{Number} alt`:高度,单位:米,默认:0
- `{Number} heading`:偏航角度,可能其他框架作 yaw,表示绕 Z 轴旋转。默认:0
- `{Number} pitch`:俯仰角度,表示绕 Y 轴旋转。默认:0
- `{Number} roll`:翻转角度,表示绕 X 轴旋转。默认:0
### methods
- **_serialize()_**
序列化
- 返回值 `string`
- **_copy()_**
复制一个新的位置
- 返回值 `position`
- **_toString()_**
将坐标字符化
- 返回值 `string`
- **_toArray()_**
将坐标数组化
- 返回值 `array`
- **_toObject()_**
将坐标对象化
- 返回值 `Object`
### static methods
- **_fromString(str)_**
将字符化坐标转换为坐标对象
- 参数
- `{String} str`:字符化坐标
- 返回值 `position`
- **_fromArray(array)_**
将数组化坐标转换为坐标对象
- 参数
- `{Array} array`:数组化坐标
- 返回值 `position`
- **_fromObject(obj)_**
将 Json 对象坐标转换为坐标对象
- 参数
- `{Object} obj`:Json 对象坐标
- 返回值 `position`
- **_fromCoordString(str)_** `deprecated`
字符坐标串转换为坐标对象
- 参数
- `{String} str`:字符坐标串
- 返回值 `position`
- **_fromCoordArray(array)_** `deprecated`
坐标数组转换为坐标对象
- 参数
- `{Array} array`:坐标数组
- 返回值 `position`
- **_deserialize(valStr)_**
反序列化
- 参数
- `{String} valStr`:序列化的对象
- 返回值 `position`
## DC.Parse
> 坐标解析工具类,可简写为 DC.P
```js
let position = DC.P.parsePosition('123,32,0')
```
### static methods
- **_parsePosition(position)_**
解析坐标为 DC.Position
- 参数
- `{String|Array|Position} position`:坐标
- 返回值 `position`
- **_parsePositions(positions)_**
解析坐标为 Array
- 参数
- `{String|Array} positions`: 坐标
- 返回值 `array`
- **_parsePointCoordToArray(position)_**
解析点位坐标为数组
- 参数
- `{String|Position} position`:点位坐标
- 返回值 `array`
- **_parsePolylineCoordToArray(positions)_**
解析线坐标为二维数组
- 参数
- `{String|Array} positions`:线坐标
- 返回值 `array`
- **_parsePolygonCoordToArray(positions,loop)_**
解析面坐标为三维数组
- 参数
- `{String|Array} positions`:面坐标
- `{Boolean} loop`:闭合
- 返回值 `array`
## DC.Transform
> 坐标转换工具类 ,可简写为 DC.T
```js
let cartesian3 = DC.T.transformWGS84ToCartesian(new DC.Position(120, 20))
```
### static methods
- **_transformCartesianToWGS84(cartesian)_**
世界坐标转换为 84 坐标
- 参数
- `{Cartesian3} cartesian`:世界坐标
- 返回值 `position`
- **_transformWGS84ToCartesian(position)_**
84 坐标转换为世界坐标
- 参数
- `{Position} position`:84 坐标
- 返回值 `cartesian`
- **_transformWGS84ToCartographic(position)_**
84 坐标转换为制图坐标
- 参数
- `{Position} position`:84 坐标
- 返回值 `cartographic`
- **_transformCartesianArrayToWGS84Array(cartesianArr)_**
世界坐标数组转 84 坐标数组
- 参数
- `{Array} cartesianArr`:世界坐标数组
- 返回值 `array`
- **_transformWGS84ArrayToCartesianArray(WGS84Arr)_**
84 坐标数组转世界坐标数组
- 参数
- `{Array} WGS84Arr`:84 坐标数组
- 返回值 `array`
- **_transformWGS84ToMercator(position)_**
84 坐标转 Mercator
- 参数
- `{Position} position`:84 坐标
- 返回值 `position`
- **_transformMercatorToWGS84(position)_**
Mercator 坐标转 84
- 参数
- `{Position} position`:Mercator 坐标
- 返回值 `position`
- **_transformWindowToWGS84(position,viewer)_**
屏幕坐标转 84
- 参数
- `{Object} position`: 屏幕坐标,格式`{x:1,y:1}`
- `{Viewer} viewer`:3D 场景
- 返回值 `position`
- **_transformWGS84ToWindow(position,viewer)_**
84 转屏幕坐标
- 参数
- `{Position} position`: 84 坐标
- `{Viewer} viewer`:3D 场景
- 返回值 `Object`
## DC.CoordTransform
> 国内坐标转换工具
```js
let point = DC.CoordTransform.BD09ToGCJ02(120, 20)
```
### static methods
- **_BD09ToGCJ02(lng, lat)_**
百度坐标系 (BD-09) 的转换 火星坐标系 (GCJ-02)
- 参数
- `{Number} lng`:经度
- `{Number} lat`:纬度
- 返回值 `[]`
- **_GCJ02ToBD09(lng, lat)_**
火星坐标系 (GCJ-02) 转换为 百度坐标系 (BD-09)
- 参数
- `{Number} lng`:经度
- `{Number} lat`:纬度
- 返回值 `[]`
- **_WGS84ToGCJ02(lng, lat)_**
WGS-84 转换为 火星坐标系 (GCJ-02)
- 参数
- `{Number} lng`:经度
- `{Number} lat`:纬度
- 返回值 `[]`
- **_GCJ02ToWGS84(lng, lat)_**
火星坐标系 (GCJ-02) 转换为 WGS-84
- 参数
- `{Number} lng`:经度
- `{Number} lat`:纬度
- 返回值 `[]`
## DC.Math
> 基本函数类
### static methods
- **_area(positions)_**
面积,单位:平方米
- 参数
- `{Array} positions`: 点位数据
- 返回值 `number`
- **_bounds(positions , expand)_**
边界
- 参数
- `{Array} positions`: 点位数据
- `{Number}} expand`: 扩展比例:0~1
- 返回值 `object`
- **_mid(start , end)_**
两点之间的中心点
- 参数
- `start`: 开始位置
- `end`: 结束位置
- 返回值 `position`
- **_center(positions)_**
中心点
- 参数
- `{Array} positions`: 点位数据
- 返回值 `position`
- **_distance(positions)_**
距离,单位:米
- 参数
- `{Array} positions`: 点位数据
- 返回值 `number`
- **_heading(start,end)_**
偏转角度,单位:度
- 参数
- `start`: 开始位置
- `end`: 结束位置
- 返回值 `number`
- **_parabola(start, end,height,count)_**
抛物线
- 参数
- `start`: 开始位置
- `end`: 结束位置
- `{Number} height`: 最高点高度
- `{Number} count`: 点位数量
- 返回值 `Array`
> [more](http://resource.dvgis.cn/cesium-docs/Math.html)
## DC.Util
> 工具类
### static methods
- **_uuid(prefix)_**
生成 uuid
- 参数
- `{String} prefix`:前缀,默认为 D
- 返回值 `string`
- **_merge(dest, ...sources)_**
属性合并
- 参数
- `{Object} dest`:目标对象
- `{Object|Array} sources`:需要合并的属性
- 返回值 `object`
- **_emptyImageUrl()_**
空图片
- **_debounce(fn,delay)_**
防抖
- **_throttle(fn,delay)_**
节流
## DC.DomUtil
> Dom 工具类
### static methods
- **_get(id)_**
创建 dom
- 参数
- `{String} id`: 要素 ID
- 返回值 `Element`
- **_create(tagName, className, [container])_**
创建 dom
- 参数
- `{String} tagName`: 标签名
- `{String} className`: 样式名,多个用空格隔开
- `{Element} [container]`: 父容器
- 返回值 `Element`
- **_addClass(el, name)_**
添加类名
- 参数
- `{Element} el`: 要素
- `{String} className`: 样式名,多个用空格隔开
- **_removeClass(el, name)_**
删除类名
- 参数
- `{Element} el`: 要素
- `{String} className`: 样式名,多个用空格隔开
- **_addClass(el, name)_**
添加类名
- 参数
- `{Element} el`: 要素
- `{String} className`: 样式名,多个用空格隔开
- **_createSvg(width, height, path, [container])_**
添加类名
- 参数
- `{Number} width`: 宽度
- `{Number} height`: 高度
- `{String} path`: 路径
- `{Element} [container]`: 父容器
- 返回值 `svg`
- **_parseDom(domStr, [withWrapper], [className])_**
字符串转 Dom
- 参数
- `{String} domStr`: dom 字符串
- `{Boolean} withWrapper`:返回是否含有父容器
- `{String} className`: 类样式名称
- 返回值 `Element | Nodes`
- **_enterFullscreen(el)_**
进入全屏
- 参数
- `{Element} el`: 要素
- **_exitFullscreen()_**
退出全屏
- **_createVideo(url, className, [container])_**
创建视频节点
- 参数
- `{String} url`: 视频地址
- `{String} className`: 样式名,多个用空格隔开
- `{Element} [container]`: 父容器
- 返回值 `Element | Nodes`