--- sidebar: auto --- # Base 🌎 ## Namespace **`DC`** DC is the default namespace for the framework.When developing with this framework, you need to start with `DC.` :::danger Try not to use DC as variable names or namespaces when developing to avoid the framework not working properly. ::: **`Cesium`** [Cesium](https://cesium.com/cesiumjs/) is a world-class ES6 open source product for 3D GIS. The product is convenient for individuals or teams to quickly build a plug-in-free 3D GIS web application, in terms of performance, accuracy, rendering quality, cross-platform are very good guarantee. If you need Cesium's internal interface during development, you can get Cesium through **`const { Cesium } = DC.Namespace`**. **`mapv`** [Mapv](https://mapv.baidu.com/) is a geographic information visualization open source library , can be used to display a large amount of geographic information data , point , line , surface data , each data also has different types of display , such as direct hit points , heat map , grid , aggregation and other ways to display data . If you need Mapv's internal interface during development, you can get Mapv through **`const { mapv } = DC.Namespace`**. **`turf`** [Turf](https://mapv.baidu.com/) is a JavaScript library for spatial analysis. It includes traditional spatial operations, helper functions for creating GeoJSON data, and data classification and statistics tools. Turf can be added to your website as a client-side plugin, or you can run Turf server-side with Node.js . If you need Turf's internal interface during development, you can get Turf through **`const { turf } = DC.Namespace`**. ## Global Properties ### version > Framework version number ### accessToken > Used to remove logo and console output information. `does not affect the use of the framework` ```js DC.accessToken = '' ``` :::tip Token requests can be made via [http://dvgis.cn/#/price](http://dvgis.cn/#/price) ::: ### baseUrl > Path to set the static resource files associated with `Cesium`: `Assets`, `Workers`, `ThirdParty`, `Widgets` ```js DC.baseUrl = '. /libs/dc-sdk/resources/' DC.ready(() => {}) ``` :::warning The `baseUrl` setting needs to be set before the `ready` function, otherwise the default setting of `. /libs/dc-sdk/resources/` ::: ### Namespace > Namespace collection for third-party libraries ## Global Methods ### use > Using third-party modules or frameworks in DC frameworks ```js let plugin = { install: (DC) => {}, } DC.use(plugin) ``` ### mixin > Adding additional properties or functions to the DC ```js let comp = { a: 'b', } DC.mixin(comp) DC.a // b ``` ### init > This function is used to initialize Cesium, the default Cesium is the latest version, if you use a custom version of Cesium, you can modify the reference to Cesium before the DC loads other modules, thus replacing Cesium in the entire DC system **_`(use with caution)`_** ```js DC.init(() => { DC.Namespace['Cesium'] = '<自定义Cesium>' DC.use(DcCore) }) ``` ### ready > The main entrance to the framework, you must start with this when using the framework, otherwise you cannot build 3D scenes ```js global.DC = DC DC.use(DcCore) DC.ready(() => { let viewer = new DC.Viewer(divId) }) ``` ## Constants > Framework internal default constants ::: warning Please use the default constants for development ::: ### MouseEventType **_`DC.MouseEventType.LEFT_DOWN`_** **_`DC.MouseEventType.LEFT_UP`_** **_`DC.MouseEventType.CLICK`_** **_`DC.MouseEventType.RIGHT_DOWN`_** **_`DC.MouseEventType.RIGHT_UP`_** **_`DC.MouseEventType.RIGHT_CLICK`_** **_`DC.MouseEventType.DB_CLICK`_** **_`DC.MouseEventType.MOUSE_MOVE`_** **_`DC.MouseEventType.WHEEL`_** **_`DC.MouseEventType.MOUSE_OVER`_** **_`DC.MouseEventType.MOUSE_OUT`_** ### SceneEventType **_`DC.SceneEventType.CAMERA_MOVE_END`_** **_`DC.SceneEventType.CAMERA_CHANGED`_** **_`DC.SceneEventType.PRE_UPDATE`_** **_`DC.SceneEventType.POST_UPDATE`_** **_`DC.SceneEventType.PRE_RENDER`_** **_`DC.SceneEventType.POST_RENDER`_** **_`DC.SceneEventType.MORPH_COMPLETE`_** **_`DC.SceneEventType.CLOCK_TICK`_** **_`DC.SceneEventType.RENDER_ERROR`_** ### AnalysisType **_`DC.AnalysisType.CONTOUR_LINE`_** **_`DC.AnalysisType.SHADOWS`_** **_`DC.AnalysisType.SIGHT_CIRCLE`_** **_`DC.AnalysisType.SIGHT_LINE`_** **_`DC.AnalysisType.VIEWSHED`_** ### MouseMode **_`DC.MouseMode.LEFT_MIDDLE`_** **_`DC.MouseMode.LEFT_RIGHT`_** ### ImageryType **_`DC.ImageryType.ARCGIS`_** **_`DC.ImageryType.SINGLE_TILE`_** **_`DC.ImageryType.WMS`_** **_`DC.ImageryType.WMTS`_** **_`DC.ImageryType.XYZ`_** **_`DC.ImageryType.COORD`_** **_`DC.ImageryType.GRID`_** **_`DC.ImageryType.MAPBOX`_** **_`DC.ImageryType.MAPBOX_STYLE`_** **_`DC.ImageryType.TMS`_** **_`DC.ImageryType.AMAP`_** **_`DC.ImageryType.BAIDU`_** **_`DC.ImageryType.GOOGLE`_** **_`DC.ImageryType.TDT`_** **_`DC.ImageryType.TENCENT`_** ### TerrainType **_`DC.TerrainType.NONE`_** **_`DC.TerrainType.XYZ`_** **_`DC.TerrainType.GOOGLE`_** **_`DC.TerrainType.ARCGIS`_** **_`DC.TerrainType.VR`_** ### LayerType **_`DC.LayerType.VECTOR`_** **_`DC.LayerType.PRIMITIVE`_** **_`DC.LayerType.TILESET`_** **_`DC.LayerType.HTML`_** **_`DC.LayerType.GEOJSON`_** **_`DC.LayerType.CLUSTER`_** **_`DC.LayerType.CAMERA_VIDEO`_** **_`DC.LayerType.PLANE_VIDEO`_** **_`DC.LayerType.KML`_** **_`DC.LayerType.CZML`_** **_`DC.LayerType.HEAT`_** **_`DC.LayerType.MAPV`_** **_`DC.LayerType.CHART`_** ### OverlayType **_`DC.OverlayType.POINT`_** **_`DC.OverlayType.POLYLINE`_** **_`DC.OverlayType.POLYGON`_** **_`DC.OverlayType.MODEL`_** **_`DC.OverlayType.BILLBOARD`_** **_`DC.OverlayType.RECTANGLE`_** **_`DC.OverlayType.CIRCLE`_** **_`DC.OverlayType.LABEL`_** **_`DC.OverlayType.TILESET`_** **_`DC.OverlayType.BOX`_** **_`DC.OverlayType.CORRIDOR`_** **_`DC.OverlayType.CYLINDER`_** **_`DC.OverlayType.ELLIPSE`_** **_`DC.OverlayType.ELLIPSOID`_** **_`DC.OverlayType.PLANE`_** **_`DC.OverlayType.POLYLINE_VOLUME`_** **_`DC.OverlayType.WALL`_** **_`DC.OverlayType.DYNAMIC_BILLBOARD`_** **_`DC.OverlayType.DYNAMIC_MODEL`_** **_`DC.OverlayType.CUSTOM_BILLBOARD`_** **_`DC.OverlayType.CUSTOM_LABEL`_** **_`DC.OverlayType.ATTACK_ARROW`_** **_`DC.OverlayType.DOUBLE_ARROW`_** **_`DC.OverlayType.FINE_ARROW`_** **_`DC.OverlayType.GATHERING_PLACE`_** **_`DC.OverlayType.TAILED_ATTACK_ARROW`_** **_`DC.OverlayType.BILLBOARD_PRIMITIVE`_** **_`DC.OverlayType.DIFFUSE_WALL_PRIMITIVE`_** **_`DC.OverlayType.ELEC_ELLIPSOID_PRIMITIVE`_** **_`DC.OverlayType.FLOW_LINE_PRIMITIVE`_** **_`DC.OverlayType.LABEL_PRIMITIVE`_** **_`DC.OverlayType.MODEL_PRIMITIVE`_** **_`DC.OverlayType.POINT_PRIMITIVE`_** **_`DC.OverlayType.POLYLINE_PRIMITIVE`_** **_`DC.OverlayType.SCAN_CIRCLE_PRIMITIVE`_** **_`DC.OverlayType.TRAIL_LINE_PRIMITIVE`_** **_`DC.OverlayType.WATER_PRIMITIVE`_** **_`DC.OverlayType.VIDEO_PRIMITIVE`_** **_`DC.OverlayType.CAMERA_VIDEO`_** **_`DC.OverlayType.PLAN_VIDEO`_** ### TrackViewMode **_`DC.TrackViewMode.FP`_** **_`DC.TrackViewMode.TP`_** **_`DC.TrackViewMode.TRACKED`_** **_`DC.TrackViewMode.FREE`_** ## DC.Viewer > 3D scene primary interface to build 3D scenes in a given DivId, also available as DC.World ### example ```html
``` ```js let viewer = DC.Viewer('viewer-container') global.viewer = viewer ``` :::warning If you are using a MVVM framework like Vue, do not add viewer, layer, or overlay to the data model. Since the 3D scene will keep refreshing each frame, adding data to the data model will cause the browser to crash if it takes a long time. ::: ### creation - **_constructor(id,[options])_** - parameters - `{String} id`:divId - `{Object} options` - returns `viewer` ```json //options(optional) { "contextOptions": { "webgl": { "alpha": false, "depth": true, "stencil": false, "antialias": true, "powerPreference": "high-performance", "premultipliedAlpha": true, "preserveDrawingBuffer": false, "failIfMajorPerformanceCaveat": false }, "allowTextureFilterAnisotropic": true }, "sceneMode": 3 //1: 2.5D,2: 2D,3: 3D } ``` ### properties - `{Element} dcContainer`:custom container **_`readonly`_** - `{Object} scene` **_`readonly`_**[Scene](http://resource.dvgis.cn/cesium-docs/Scene.html) - `{Object} camera`**_`readonly`_**[Camera](http://resource.dvgis.cn/cesium-docs/Scene.html) - `{Element} canvas`**_`readonly`_** - `{Object} clock`[Clock](http://resource.dvgis.cn/cesium-docs/Clock.html) - `{Object} dataSources`[DataSourceCollection](http://resource.dvgis.cn/cesium-docs/DataSourceCollection.html) - `{Object} imageryLayers`[ImageryLayerCollection](http://resource.dvgis.cn/cesium-docs/ImageryLayerCollection.html) - `{Object} entities`[EntityCollection](http://resource.dvgis.cn/cesium-docs/EntityCollection.html) - [`{Popup} popup`](#popup)**_`readonly`_** - [`{ContextMenu} contextMenu`](#contextmenu)**_`readonly`_** - [`{Tooltip} tooltip`](#tooltip)**_`readonly`_** - [`{MapSplit} mapSplit`](#mapsplit)**_`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} level`**_`readonly`_** - `{Rect} viewBounds`**_`readonly`_** ### methods - **_setOptions(options)_** - parameters - `{Object} options`:属性对象 - returns `this` ```json // options(optional) { "shadows": false, "resolutionScale": 1, "showAtmosphere": true, "showSun": true, "showMoon": true, "enableFxaa": true, "msaaSamples": 1, "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": new DC.Color(0, 0, 0, 0), "translucency": { "enabled": false, "backFaceAlpha": 1, "backFaceAlphaByDistance": null, "frontFaceAlpha": 1, "frontFaceAlphaByDistance": null } }, "skyBox": { "sources": {}, "show": true, "offsetAngle": 0 } } ``` - **_setPitchRange(min,max)_** - parameters - `{Number} min`:min angel - `{Number} max`:max angel - returns `this` - **_changeSceneMode(sceneMode, [duration])_** - parameters - `{Number} sceneMode`: 2:2D,3:3D,2.5:2.5D - `{Number} duration` - returns `this` - **_changeMouseMode(mouseMode)_** - parameters - `{Number} mouseMode`, Refer to:`DC.MouseMode` - returns `this` - **_addBaseLayer(baseLayers,[options])_** - parameters - `{baseLayer|Array} baseLayers` - `{Object} options` - returns `this` ```json //options { "name": "map", "iconUrl": "../preview.png" } ``` - **_changeBaseLayer(index)_** - parameters - `{Number} index` - returns `this` - **_getImageryLayerInfo(windowPosition)_** - parameters - `{Object} windowPosition` - returns `promise` - **_addTerrain(terrain)_** - parameters - `{Terrain} terrain` - returns `this` - **_changeTerrain(index)_** - parameters - `{Number} index` - returns `this` - **_removeTerrain()_** - returns `this` - **_addLayerGroup(layerGroup)_** - parameters - `{LayerGroup} layerGroup` - returns `this` - **_removeLayerGroup(layerGroup)_** - parameters - `{LayerGroup} layerGroup` - returns `this` - **_getLayerGroup(id)_** - parameters - `{String} id` - returns `layerGroup` - **_addLayer(layer)_** - parameters - `{Layer} layer` - returns `this` - **_removeLayer(layer)_** - parameters - `{Layer} layer` - returns `this` - **_getLayer(id)_** - parameters - `{String} id`:layer id - returns `layer` - **_getLayers()_** - returns `layer` - **_eachLayer(callback, context)_** - parameters - `{Function} callback` - `{Object} context` - returns `this` ```js viewer.eachLayer((layer) => {}) ``` - **_flyTo(target,[duration])_** - parameters - `{VectorLayer|Overlay} target` - `{Number} duration` - returns `this` - **_zoomTo(target)_** - parameters - `{VectorLayer|Overlay} target` - returns `this` - **_flyToPosition(position, [completeCallback], [duration])_** - parameters - `{Position} position` - `{Function} completeCallback` - `{Number} duration` - returns `this` - **_zoomToPosition(position, [completeCallback])_** - parameters - `{DC.Position} position` - `{Function} completeCallback` - returns `this` - **_flyToBounds(bounds,{heading,pitch,roll}, completeCallback, duration)_** - parameters - `{String|Array} bounds` format:[minX,minY,maxX,maxY] - `{Object} hpr` - `{Function} completeCallback` - `{Number} duration` - returns `this` - **_zoomToBounds(bounds,{heading,pitch,roll}, completeCallback)_** - parameters - `{String|Array} bounds` format:[minX,minY,maxX,maxY] - `{Object} hpr` - `{Function} completeCallback` - returns `this` - **_on(type, callback, [context])_** - parameters - `{Object} type` - `{Function} callback` - `{Object} context` - returns `this` - **_once(type, callback, [context])_** - parameters - `{Object} type` - `{Function} callback` - `{Object} context` - returns `this` - **_off(type, callback, [context])_** - parameters - `{Object} type` - `{Function} callback` - `{Object} context` - returns `this` - **_destroy()_** - returns `this` - **_exportScene([name])_** - parameters - `{String} name` - returns `this` - **_use(plugin)_** - parameters - `{Object} plugin` - returns `this` ```js let plugin = { install: (viewer) => {}, } viewer.use(plugin) ``` ## Popup ### example ```js let popup = viewer.popup popup.setContent('
') ``` ### properties - `{String} state`**_`readonly`_** - `{Object} config`**_`writeOnly`_** ```json { "position": "center", // center,left ,right "customClass": "custom" // Add a custom Css class name to the popup, separating multiple names with spaces } ``` ### methods - **_setPosition(position)_** - parameters - `{Cartesian3} position`: World Coordinates - returns `this` - **_setContent(content)_** - parameters - `{String|Element} content` - returns `this` - **_setWrapper(wrapper)_** - parameters - `{Element} wrapper`**_`(Templates for MVVM frameworks in general)`_** - returns `this` - **_showAt(position, content)_** - parameters - `{Cartesian3} position` - `{String|Element} content` - returns `this` - **_hide()_** - returns `this` ## ContextMenu ### example ```js let contextMenu = viewer.contextMenu contextMenu.enable = true contextMenu.DEFAULT_MENU = [ { label: '测试', callback: (e) => {}, // e: windowPosition,position,surfacePosition,overlay context: this, }, ] // Setting the default ContextMenu affects the global ContextMenu (use with caution). ``` ### 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 }, 'test') ``` ### properties - `{Boolean} enable` - `{String} state` **_`readonly`_** ### methods - **_showAt(position,content)_** - parameters - `{Cartesian2} position`: Screen Coordinates - `{String|Element} content` - returns `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)_** - parameters - `{BaseLayer} baseLayer` - `{Number} splitDirection`,-1:left,0:none,1:right - returns `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.SkyBox ### example ```js scene.skyBox = new DC.SkyBox({ 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)_** - parameters - `{Object} options` - returns `skyBox` ```json //options(optional) { "sources": {}, "show": true } ``` ### properties - `{Object} sources` - `{Boolean} show` ## DC.GroundSkyBox ### 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)_** - parameters - `{Object} options` - returns `groundSkyBox` ```json //options(optional) { "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])_** - parameters - `{Number} lng` - `{Number} lat` - `{Number} alt` - `{Number} heading` - `{Number} pitch` - `{Number} roll` - returns `position` ### properties - `{Number} lng` - `{Number} lat` - `{Number} alt` - `{Number} heading` - `{Number} pitch` - `{Number} roll` ### methods - **_serialize()_** - returns `string` - **_copy()_** - returns `position` - **_toString()_** - returns `string` - **_toArray()_** - returns `array` - **_toObject()_** - returns `Object` ### static methods - **_fromString(str)_** - parameters - `{String} str` - returns `position` - **_fromArray(array)_** - parameters - `{Array} array` - returns `position` - **_fromObject(obj)_** - parameters - `{Object} obj` - returns `position` - **_deserialize(valStr)_** - parameters - `{String} valStr` - returns `position` ## DC.Color ### example ```js let red = DC.Color.RED ``` ### properties - `{Color} RED` - `{Color} YELLOW` - `{Color} WHITE` - `{Color} GREEN` [others](http://resource.dvgis.cn/cesium-docs/Color.html) ## DC.TilesetStyle ### example ```js let style = new DC.TilesetStyle() style.color = { conditions: [ ['${floor} >= 5', 'rgb(198, 106, 11)'], ['true', 'rgb(127, 59, 8)'], ], } ``` [Cesium3DTileStyle](http://resource.dvgis.cn/cesium-docs/Cesium3DTileStyle.html) ## DC.JulianDate ```js let date = DC.JulianDate.now() ``` ### static methods - **_now()_** - returns `date` - **_fromDate(date)_** - parameters - `{Date} date` - returns `date` [JulianDate](http://resource.dvgis.cn/cesium-docs/JulianDate.html) ## DC.Rect ### example ```js let r = DC.Rect.fromDegrees(10, 20, 12, 31) ``` [Rectangle](http://resource.dvgis.cn/cesium-docs/Rectangle.html) ## DC.CallbackProperty ```js let position = new DC.Position(120, 20) let point = new DC.Point(position) let size = 0 point.setStyle({ pixelSize: new DC.CallbackProperty((time) => { size += 1 if (size == 10) { size = 0 } return size }), }) ``` [CallbackProperty](http://resource.dvgis.cn/cesium-docs/CallbackProperty.html) ## DC.Parse > Coordinate resolution tool class, can be abbreviated as DC.P ```js let position = DC.P.parsePosition('123,32,0') ``` ### static methods - **_parsePosition(position)_** - parameters - `{String|Array|Position} position` - returns `position` - **_parsePositions(positions)_** - parameters - `{String|Array} positions` - returns `array` - **_parsePointCoordToArray(position)_** - parameters - `{String|Position} position` - returns `array` - **_parsePolylineCoordToArray(positions)_** - parameters - `{String|Array} positions` - returns `array` - **_parsePolygonCoordToArray(positions,loop)_** - parameters - `{String|Array} positions` - `{Boolean} loop` - returns `array` ## DC.Transform > Coordinate conversion tool class , can be abbreviated DC.T ```js let cartesian3 = DC.T.transformWGS84ToCartesian(new DC.Position(120, 20)) ``` ### static methods - **_transformCartesianToWGS84(cartesian)_** - parameters - `{Cartesian3} cartesian` - returns `position` - **_transformWGS84ToCartesian(position)_** - parameters - `{Position} position` - returns `cartesian` - **_transformWGS84ToCartographic(position)_** - parameters - `{Position} position` - returns `cartographic` - **_transformCartesianArrayToWGS84Array(cartesianArr)_** - parameters - `{Array} cartesianArr` - returns `array` - **_transformWGS84ArrayToCartesianArray(WGS84Arr)_** - parameters - `{Array} WGS84Arr` - returns `array` - **_transformWGS84ToMercator(position)_** - parameters - `{Position} position` - returns `position` - **_transformMercatorToWGS84(position)_** - parameters - `{Position} position` - returns `position` - **_transformWindowToWGS84(position,viewer)_** - parameters - `{Object} position`,format:`{x:1,y:1}` - `{Viewer} viewer` - returns `position` - **_transformWGS84ToWindow(position,viewer)_** - parameters - `{Position} position` - `{Viewer} viewer` - returns `Object` ## DC.CoordTransform > China Coordinate Conversion Tool ```js let point = DC.CoordTransform.BD09ToGCJ02(120, 20) ``` ### static methods - **_BD09ToGCJ02(lng, lat)_** - parameters - `{Number} lng` - `{Number} lat` - returns `[]` - **_GCJ02ToBD09(lng, lat)_** - parameters - `{Number} lng` - `{Number} lat` - returns `[]` - **_WGS84ToGCJ02(lng, lat)_** - parameters - `{Number} lng` - `{Number} lat` - returns `[]` - **_GCJ02ToWGS84(lng, lat)_** - parameters - `{Number} lng` - `{Number} lat` - returns `[]` ## DC.Math ### static methods - **_area(positions)_** - parameters - `{Array} positions` - returns `number` - **_bounds(positions , expand)_** - parameters - `{Array} positions` - `{Number}} expand`:0~1 - returns `object` - **_mid(startPosition , endPosition)_** - parameters - `{Position} startPosition` - `{Position} endPosition` - returns `position` - **_center(positions)_** - parameters - `{Array} positions` - returns `position` - **_distance(positions)_** - parameters - `{Array} positions` - returns `number` - **_heading(startPosition, endPosition)_** - parameters - `{Position} startPosition` - `{Position} endPosition` - returns `number` - **_parabola(startPosition, endPosition,height,count)_** - parameters - `{Position} startPosition` - `{Position} endPosition` - `{Number} height` - `{Number} count` - returns `Array` > [more](http://resource.dvgis.cn/cesium-docs/Math.html) ## DC.Util ### static methods - **_uuid([prefix])_** - parameters - `{String} prefix` - returns `string` - **_merge(dest, ...sources)_** - parameters - `{Object} dest` - `{Object|Array} sources` - returns `object` - **_emptyImageUrl()_** - **_debounce(fn,delay)_** - **_throttle(fn,delay)_** ## DC.DomUtil ### static methods - **_get(id)_** - parameters - `{String} id` - returns `Element` - **_create(tagName, className, [container])_** - parameters - `{String} tagName` - `{String} className` - `{Element} [container]` - returns `Element` - **_addClass(el, name)_** - parameters - `{Element} el` - `{String} className` - **_removeClass(el, name)_** - parameters - `{Element} el` - `{String} className` - **_addClass(el, name)_** - parameters - `{Element} el` - `{String} className` - **_createSvg(width, height, path, [container])_** - parameters - `{Number} width` - `{Number} height` - `{String} path` - `{Element} [container]` - returns `svg` - **_parseDom(domStr, [withWrapper], [className])_** - parameters - `{String} domStr` - `{Boolean} withWrapper` - `{String} className` - returns `Element | Nodes` - **_enterFullscreen(el)_** - parameters - `{Element} el` - **_exitFullscreen()_** - **_createVideo(url, className, [container])_** - parameters - `{String} url` - `{String} className` - `{Element} [container]` - returns `Element | Nodes`