Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

2 роки тому
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343
  1. # 基础 API 🌎
  2. ## DC.Viewer
  3. > 3D 场景主要接口,在给定的 DivId 中构建三维场景
  4. ### example
  5. ```html
  6. <div id="viewer-container"></div>
  7. ```
  8. ```js
  9. let viewer = DC.Viewer('viewer-container')
  10. global.viewer = viewer // 添加到全局变量
  11. ```
  12. :::warning
  13. 如果开发使用的是 Vue 这样的 MVVM 框架,不要将 viewer、layer、overlay 添加到数据模型中。由于 3D 场景中会不停的刷新每一帧,如果将数据添加到数据模型中,长时间的话会导致浏览器的压力增大而奔溃。
  14. :::
  15. ### creation
  16. - **_constructor(id,[options])_**
  17. 构造函数
  18. - 参数
  19. - `{String | Element } id`:容器 ID
  20. - `{Object} options`:属性
  21. - 返回值 `viewer`
  22. ```json
  23. //属性参数(可选)
  24. {
  25. "contextOptions": {
  26. "webgl": {
  27. "alpha": false, //背景
  28. "depth": true,
  29. "stencil": false,
  30. "antialias": true,
  31. "powerPreference": "high-performance",
  32. "premultipliedAlpha": true,
  33. "preserveDrawingBuffer": false,
  34. "failIfMajorPerformanceCaveat": false
  35. },
  36. "allowTextureFilterAnisotropic": true
  37. },
  38. "sceneMode": 3 //1: 2.5D,2: 2D,3: 3D
  39. }
  40. ```
  41. ### properties
  42. - `{Element} container`:场景容器 **_`readonly`_**
  43. - `{Element} widgetContainer`:场景组件容器 **_`readonly`_**
  44. - `{Element} layerContainer`:场景图层容器 **_`readonly`_**
  45. - `{Object} scene`:场景 **_`readonly`_**,详情参考:[Scene](http://resource.dvgis.cn/cesium-docs/Scene.html)
  46. - `{Object} camera`:相机 **_`readonly`_**,详情参考:[Camera](http://resource.dvgis.cn/cesium-docs/Scene.html)
  47. - `{Element} canvas`:canvas 节点 **_`readonly`_**
  48. - `{Object} clock`:时钟,详情参考:[Clock](http://resource.dvgis.cn/cesium-docs/Clock.html)
  49. - `{Object} dataSources`:数据资源集合,详情参考:[DataSourceCollection](http://resource.dvgis.cn/cesium-docs/DataSourceCollection.html)
  50. - `{Object} imageryLayers`:瓦片集合,详情参考:[ImageryLayerCollection](http://resource.dvgis.cn/cesium-docs/ImageryLayerCollection.html)
  51. - `{Object} entities`:实体集合,详情参考:[EntityCollection](http://resource.dvgis.cn/cesium-docs/EntityCollection.html)
  52. - [`{Popup} popup`](#popup):气泡窗口 **_`readonly`_**
  53. - [`{ContextMenu} contextMenu`](#contextmenu):右击弹框 **_`readonly`_**
  54. - [`{Tooltip} tooltip`](#tooltip):提示框 **_`readonly`_**
  55. - [`{MapSplit} mapSplit`](#mapsplit):地图分割 **_`readonly`_**
  56. - [`{TilesetSplit} tilesetSplit`](#tilesetsplit):模型分割 **_`readonly`_**
  57. - [`{SceneSplit} sceneSplit`](#scenesplit):场景分割 **_`readonly`_**
  58. - [`{Compass} compass`](#compass):罗盘 **_`readonly`_**
  59. - [`{ZoomController} zoomController`](#zoomcontroller):罗盘 **_`readonly`_**
  60. - [`{LocationBar} locationBar`](#locationbar):坐标信息 **_`readonly`_**
  61. - [`{DistanceLegend} distanceLegend`](#distancelegend):比例尺 **_`readonly`_**
  62. - [`{LoadingMask} loadingMask`](#loadingmask):加载蒙层 **_`readonly`_**
  63. - `{Position} cameraPosition`:相机位置 **_`readonly`_**
  64. - `{Number} resolution`:分辨率 **_`readonly`_**
  65. - `{Number} zoom`: 当前层级 **_`readonly`_**
  66. - `{Rect} viewBounds`:视野范围 **_`readonly`_**
  67. ### methods
  68. - **_setOptions(options)_**
  69. 设置属性
  70. - 参数
  71. - `{Object} options`:属性对象
  72. - 返回值 `this`
  73. ```json
  74. // 属性参数(可选)
  75. {
  76. "shadows": false, // 是否开启阴影
  77. "resolutionScale": 1, // 设置渲染分辨率的缩放比例
  78. "showAtmosphere": true, //是否显示大气层
  79. "showSun": true, //是否显示太阳
  80. "showMoon": true, //是否显示月亮
  81. "enableFxaa": true, //是否开启抗锯齿
  82. "msaaSamples": 1, //msaa抗拒出取样度
  83. "cameraController": {
  84. // 相机控制
  85. "enableRotate": true, // 是否可以旋转
  86. "enableTilt": true, // 是否可以翻转
  87. "enableTranslate": true, // 是否可以平移
  88. "enableZoom": true, // 是否可以缩放
  89. "enableCollisionDetection": true, // 是否支持碰撞检测
  90. "minimumZoomDistance": 1.0, // 最小缩放距离
  91. "maximumZoomDistance": 40489014.0 // 最大缩放距离
  92. },
  93. "globe": {
  94. "show": true, // 是否显示地球
  95. "showGroundAtmosphere": true, // 显示地面大气
  96. "enableLighting": false, //是否开启灯光,开启后地球会根据当前时间启用灯光
  97. "depthTestAgainstTerrain": false, //是否开启深度检测
  98. "tileCacheSize": 100, // 默认瓦片缓存大小
  99. "preloadSiblings": false, //是否应预加载渲染同级图块
  100. "terrainExaggeration": 1, //地形夸张系数
  101. "terrainExaggerationRelativeHeight": 1, //地形相对高度夸张系数
  102. "baseColor": new DC.Color(0, 0, 0.5, 1), //地球默认底色
  103. "filterColor": new DC.Color(0, 0, 0, 0), //瓦片过滤色,设置后不可逆
  104. "translucency": {
  105. //地表透明
  106. "enabled": false, // 是否开启地表透明
  107. "backFaceAlpha": 1, // 地球背面透明度
  108. "backFaceAlphaByDistance": null, //根据距离设置地球背面透明度: {near:400,nearValue:0.2,far:800,farValue:1}
  109. "frontFaceAlpha": 1, // 地球正面透明度
  110. "frontFaceAlphaByDistance": null //根据距离设置地球正面透明度: {near:400,nearValue:0.2,far:800,farValue:1}
  111. }
  112. },
  113. "skyBox": {
  114. "sources": {}, // 六个面的贴图
  115. "show": true, //是否显示
  116. "offsetAngle": 0 //旋转角度
  117. }
  118. }
  119. ```
  120. - **_setPitchRange(min,max)_**
  121. 设置翻转角度
  122. - 参数
  123. - `{Number} min`:最小角度
  124. - `{Number} max`:最大角度
  125. - 返回值 `this`
  126. - **_changeSceneMode(sceneMode, duration)_**
  127. 改变场景模式
  128. - 参数
  129. - `{Number} sceneMode`:场景模式 ,2:2D,3:3D,2.5:2.5D
  130. - `{Number} duration`:间隔时间
  131. - 返回值 `this`
  132. - **_changeMouseMode(mouseMode)_**
  133. 改变鼠标使用模式
  134. - 参数
  135. - `{Number} mouseMode`:鼠标模式,详情参考:`DC.MouseMode`
  136. - 返回值 `this`
  137. - **_addBaseLayer(baseLayers,options)_**
  138. 添加地图
  139. - 参数
  140. - `{baseLayer|Array<baseLayer>} baseLayers`:地图
  141. - `{Object} options`:属性
  142. - 返回值 `this`
  143. ```json
  144. //属性参数 (可选)
  145. {
  146. "name": "电子地图", //名称
  147. "iconUrl": "../preview.png" //缩略图
  148. "alpha" : 1.0,
  149. "nightAlpha" : 1.0,
  150. "dayAlpha" : 1.0,
  151. "brightness" : 1.0,
  152. "contrast" : 1.0,
  153. "hue" : 1.0,
  154. "saturation : 1.0,
  155. "gamma : 1.0,
  156. }
  157. ```
  158. - **_changeBaseLayer(index)_**
  159. 更改地图
  160. - 参数
  161. - `{Number} index`:地图索引
  162. - 返回值 `this`
  163. - **_getImageryLayerInfo(windowPosition)_**
  164. 获取瓦片信息
  165. - 参数
  166. - `{Object} windowPosition`:窗口坐标
  167. - 返回值 `promise`
  168. - **_setTerrain(terrain)_**
  169. 设置地形
  170. - 参数
  171. - `{Terrain} terrain`:地形
  172. - 返回值 `this`
  173. - **_addLayerGroup(layerGroup)_**
  174. 添加图层组
  175. - 参数
  176. - `{LayerGroup} layerGroup`:图层组
  177. - 返回值 `this`
  178. - **_removeLayerGroup(layerGroup)_**
  179. 移除图层组
  180. - 参数
  181. - `{LayerGroup} layerGroup`:图层组
  182. - 返回值 `this`
  183. - **_getLayerGroup(id)_**
  184. 获取图层组
  185. - 参数
  186. - `{String} id`:图层组 ID
  187. - 返回值 `layerGroup`
  188. - **_addLayer(layer)_**
  189. 添加图层
  190. - 参数
  191. - `{Layer} layer`:图层
  192. - 返回值 `this`
  193. - **_removeLayer(layer)_**
  194. 删除图层
  195. - 参数
  196. - `{Layer} layer`:图层
  197. - 返回值 `this`
  198. - **_getLayer(id)_**
  199. 获取图层
  200. - 参数
  201. - `{String} id`:图层 ID
  202. - 返回值 `layer`
  203. - **_getLayers()_**
  204. 获取所有图层,不包括地图
  205. - 返回值 `layer`
  206. - **_eachLayer(method, context)_**
  207. 遍历所有图层
  208. - 参数
  209. - `{Function} method`:回调函数
  210. - `{Object} context`:上下文,默认为 this
  211. - 返回值 `this`
  212. ```js
  213. viewer.eachLayer((layer) => {})
  214. ```
  215. - **_flyTo(target,duration)_**
  216. 飞向目标
  217. - 参数
  218. - `{VectorLayer|Overlay} target` :目标
  219. - `{Number} duration`:飞到位置时间,单位:秒
  220. - 返回值 `this`
  221. - **_zoomTo(target)_**
  222. 缩放到目标
  223. - 参数
  224. - `{VectorLayer|Overlay} target` :目标
  225. - 返回值 `this`
  226. - **_flyToPosition(position, completeCallback, duration)_**
  227. 飞到具体位置
  228. - 参数
  229. - `{Position} position`:位置
  230. - `{Function} completeCallback`:飞完之后触发的回调
  231. - `{Number} duration`:飞到位置时间,单位:秒
  232. - 返回值 `this`
  233. - **_zoomToPosition(position, completeCallback)_**
  234. 缩放到具体位置
  235. - 参数
  236. - `{DC.Position} position`:位置
  237. - `{Function} completeCallback`:缩放完成后触发的回调
  238. - 返回值 `this`
  239. - **_flyToBounds(bounds,{heading,pitch,roll}, completeCallback, duration)_**
  240. 飞到指定的范围
  241. - 参数
  242. - `{String|Array} bounds`:范围,格式:[minX,minY,maxX,maxY]
  243. - `{Object} hpr`:方位角
  244. - `{Function} completeCallback`:飞完之后触发的回调
  245. - `{Number} duration`:飞到位置时间,单位:秒
  246. - 返回值 `this`
  247. - **_zoomToBounds(bounds,{heading,pitch,roll}, completeCallback)_**
  248. 缩放到指定的范围
  249. - 参数
  250. - `{String|Array} bounds`:范围,格式:[minX,minY,maxX,maxY]
  251. - `{Object} hpr`:方位角
  252. - `{Function} completeCallback`:缩放完之后触发的回调
  253. - 返回值 `this`
  254. - **_on(type, callback, context)_**
  255. 事件订阅
  256. - 参数
  257. - `{Object} type` :订阅类型
  258. - `{Function} callback` :订阅回调
  259. - `{Object} context` :上下文
  260. - 返回值 `this`
  261. - **_once(type, callback, context)_**
  262. 事件订阅(一次)
  263. - 参数
  264. - `{Object} type` :订阅类型
  265. - `{Function} callback` :订阅回调
  266. - `{Object} context` :上下文
  267. - 返回值 `this`
  268. - **_off(type, callback, context)_**
  269. 取消事件订阅
  270. - 参数
  271. - `{Object} type` :订阅类型
  272. - `{Function} callback` :订阅回调
  273. - `{Object} context` :上下文
  274. - 返回值 `this`
  275. - **_destroy()_**
  276. 销毁三维场景
  277. - 返回值 `this`
  278. - **_exportScene(name)_**
  279. 导出场景
  280. - 参数
  281. - `{String} name` :名称,默认为 scene
  282. - 返回值 `this`
  283. ## Popup
  284. > 气泡窗口
  285. ### example
  286. ```js
  287. let popup = viewer.popup
  288. popup.setContent('<div></div>')
  289. ```
  290. ### properties
  291. - `{String} state`:状态 **_`readonly`_**
  292. - `{Object} config`:配置 **_`writeOnly`_**
  293. ```json
  294. // 配置(可选)
  295. // 配置后会影响全局的popup的显示样式,请慎重。
  296. {
  297. "position": "center", // popup的位于鼠标的点击位置的方向,有:center,left ,right
  298. "customClass": "custom" // 添加自定义的Css 类名到popup中,多个用空格隔开
  299. }
  300. ```
  301. ### methods
  302. - **_setPosition(position)_**
  303. 设置位置
  304. - 参数
  305. - `{Cartesian3} position`:世界坐标
  306. - 返回值 `this`
  307. - **_setContent(content)_**
  308. 设置内容
  309. - 参数
  310. - `{String|Element} content`:内容
  311. - 返回值 `this`
  312. - **_setWrapper(wrapper)_**
  313. 设置容器
  314. - 参数
  315. - `{Element} wrapper`:容器 **_`(一般用于 MVVM 框架的模板)`_**
  316. - 返回值 `this`
  317. - **_showAt(position, content)_**
  318. 设置内容
  319. - 参数
  320. - `{Cartesian3} position`:世界坐标
  321. - `{String|Element} content`:内容
  322. - 返回值 `this`
  323. - **_hide()_**
  324. 隐藏气泡窗口
  325. - 返回值 `this`
  326. ## ContextMenu
  327. > 右击菜单
  328. ### example
  329. ```js
  330. let contextMenu = viewer.contextMenu
  331. contextMenu.enable = true
  332. contextMenu.DEFAULT_MENU = [
  333. {
  334. label: '测试',
  335. callback: (e) => {}, // e是一个对象主要包括 windowPosition,position,surfacePosition,overlay
  336. context: this,
  337. },
  338. ] // 设置默认的右击菜单,会影响全局右击菜单(慎用)。
  339. ```
  340. ### properties
  341. - `{Boolean} enable`:是否启用
  342. - `{String} state`:状态 **_`readonly`_**
  343. - `{Array} DEFAULT_MENU`:默认菜单,菜单的回调函数参数为一个对象 **_`writeOnly`_**
  344. ## Tooltip
  345. > 提示框
  346. ### example
  347. ```js
  348. let tooltip = viewer.tooltip
  349. tooltip.enable = true
  350. tooltip.showAt({ x: 100, y: 100 }, '测试')
  351. ```
  352. ### properties
  353. - `{Boolean} enable`:是否启用
  354. - `{String} state`:状态 **_`readonly`_**
  355. ### methods
  356. - **_showAt(position,content)_**
  357. 设置位置
  358. - 参数
  359. - `{Cartesian2} position`:屏幕坐标
  360. - `{String|Element} content`:内容
  361. - 返回值 `this`
  362. ## MapSplit
  363. > 地图分割
  364. ### examples
  365. ```js
  366. let baseLayer_elc = DC.ImageryLayerFactory.createGoogleImageryLayer()
  367. viewer.mapSplit.enable = true
  368. viewer.mapSplit.addBaseLayer(baseLayer_elc, -1)
  369. ```
  370. ### properties
  371. - `{Boolean} enable`:是否启用
  372. - `{String} state`:状态 **_`readonly`_**
  373. ### methods
  374. - **_addBaseLayer(baseLayer,[splitDirection])_**
  375. 添加地图
  376. - 参数
  377. - `{BaseLayer} baseLayer`:地图
  378. - `{Number} splitDirection`:分割方向,-1:左,0:无,1:右
  379. - 返回值 `this`
  380. ## TilesetSplit
  381. > 模型分割
  382. ### examples
  383. ```js
  384. let tileset = new DC.Tileset('**/tileset.json')
  385. tileset.setSplitDirection(1)
  386. viewer.tilesetSplit.enable = true
  387. viewer.tilesetSplit.addTileset(tileset)
  388. ```
  389. ### properties
  390. - `{Boolean} enable`:是否启用
  391. - `{String} state`:状态 **_`readonly`_**
  392. ### methods
  393. - **_addTileset(tileset)_**
  394. 添加地图
  395. - 参数
  396. - `{Tileset} tileset`:模型
  397. - 返回值 `this`
  398. ## SceneSplit
  399. > 场景分割
  400. ### examples
  401. ```js
  402. let tileset = new DC.Tileset('**/tileset.json')
  403. tileset.setSplitDirection(1)
  404. viewer.sceneSplit.enable = true
  405. viewer.sceneSplit.addTileset(tileset)
  406. ```
  407. ### properties
  408. - `{Boolean} enable`:是否启用
  409. - `{String} state`:状态 **_`readonly`_**
  410. ### methods
  411. - **_addBaseLayer(baseLayer)_**
  412. 添加地图
  413. - 参数
  414. - `{BaseLayer} baseLayer`:地图
  415. - 返回值 `this`
  416. - **_addTileset(tileset)_**
  417. 添加地图
  418. - 参数
  419. - `{Tileset} tileset`:模型
  420. - 返回值 `this`
  421. ## Compass
  422. > 罗盘
  423. ### examples
  424. ```js
  425. viewer.compass.enable = true
  426. ```
  427. ### properties
  428. - `{Boolean} enable`:是否启用
  429. - `{String} state`:状态 **_`readonly`_**
  430. ## ZoomController
  431. > 缩放控制
  432. ### examples
  433. ```js
  434. viewer.zoomController.enable = true
  435. ```
  436. ### properties
  437. - `{Boolean} enable`:是否启用
  438. - `{String} state`:状态 **_`readonly`_**
  439. ## LocationBar
  440. > 坐标信息
  441. ### examples
  442. ```js
  443. viewer.locationBar.enable = true
  444. ```
  445. ### properties
  446. - `{Boolean} enable`:是否启用
  447. - `{String} state`:状态 **_`readonly`_**
  448. ## DistanceLegend
  449. > 比例尺
  450. ### examples
  451. ```js
  452. viewer.distanceLegend.enable = true
  453. ```
  454. ### properties
  455. - `{Boolean} enable`:是否启用
  456. - `{String} state`:状态 **_`readonly`_**
  457. ## LoadingMask
  458. > 加载蒙层
  459. ### examples
  460. ```js
  461. viewer.loadingMask.enable = true
  462. ```
  463. ### properties
  464. - `{Boolean} enable`:是否启用
  465. - `{String} state`:状态 **_`readonly`_**
  466. ## DC.SkyBox
  467. > 天空盒,[详情参考](http://resource.dvgis.cn/cesium-docs/SkyBox.html)
  468. ### example
  469. ```js
  470. scene.skyBox = new DC.SkyBox({
  471. sources: {
  472. positiveX: 'skybox_px.png',
  473. negativeX: 'skybox_nx.png',
  474. positiveY: 'skybox_py.png',
  475. negativeY: 'skybox_ny.png',
  476. positiveZ: 'skybox_pz.png',
  477. negativeZ: 'skybox_nz.png',
  478. },
  479. })
  480. ```
  481. ### creation
  482. - **_constructor(id)_**
  483. 构造函数
  484. - 参数
  485. - `{Object} options`:配置
  486. - 返回值 `skyBox`
  487. ```json
  488. //options(可选)
  489. {
  490. "sources": {}, // 六个面的贴图
  491. "show": true //显示
  492. }
  493. ```
  494. ### properties
  495. - `{Object} sources`:六个面的贴图
  496. - `{Boolean} show`:显示
  497. ## DC.GroundSkyBox
  498. > 近地天空盒,[详情参考](http://resource.dvgis.cn/cesium-docs/SkyBox.html)
  499. ### example
  500. ```js
  501. scene.skyBox = new DC.GroundSkyBox({
  502. sources: {
  503. positiveX: 'skybox_px.png',
  504. negativeX: 'skybox_nx.png',
  505. positiveY: 'skybox_py.png',
  506. negativeY: 'skybox_ny.png',
  507. positiveZ: 'skybox_pz.png',
  508. negativeZ: 'skybox_nz.png',
  509. },
  510. })
  511. ```
  512. ### creation
  513. - **_constructor(id)_**
  514. 构造函数
  515. - 参数
  516. - `{Object} options`:配置
  517. - 返回值 `skyBox`
  518. ```json
  519. //options(可选)
  520. {
  521. "sources": {}, // 六个面的贴图
  522. "show": true, //显示
  523. "offsetAngle": 0 //旋转角度
  524. }
  525. ```
  526. ### properties
  527. - `{Object} sources`:六个面的贴图
  528. - `{Boolean} show`:显示
  529. - `{Number} offsetAngle`:旋转角度
  530. ## DC.Position
  531. > 坐标类,用于描述物体在场景中的具体位置,采用右手标准
  532. ### example
  533. ```js
  534. let position = new DC.Position(120, 22, 102)
  535. let position1 = DC.Position.fromString('120,22,102')
  536. let position2 = DC.Position.fromArray([120, 22, 102])
  537. let position3 = DC.Position.fromObject({ lng: 120, lat: 22, height: 102 })
  538. ```
  539. ### creation
  540. - **_constructor(lng,lat,alt,heading,pitch,roll)_**
  541. 构造函数
  542. - 参数
  543. - `{Number} lng`:经度
  544. - `{Number} lat`:纬度
  545. - `{Number} alt`:高度,单位:米,默认:0
  546. - `{Number} heading`:偏航角度,可能其他框架作 yaw,表示绕 Z 轴旋转。默认:0
  547. - `{Number} pitch`:俯仰角度,表示绕 Y 轴旋转。默认:0
  548. - `{Number} roll`:翻转角度,表示绕 X 轴旋转。默认:0
  549. - 返回值 `position`
  550. ### properties
  551. - `{Number} lng`:经度
  552. - `{Number} lat`:纬度
  553. - `{Number} alt`:高度,单位:米,默认:0
  554. - `{Number} heading`:偏航角度,可能其他框架作 yaw,表示绕 Z 轴旋转。默认:0
  555. - `{Number} pitch`:俯仰角度,表示绕 Y 轴旋转。默认:0
  556. - `{Number} roll`:翻转角度,表示绕 X 轴旋转。默认:0
  557. ### methods
  558. - **_serialize()_**
  559. 序列化
  560. - 返回值 `string`
  561. - **_copy()_**
  562. 复制一个新的位置
  563. - 返回值 `position`
  564. - **_toString()_**
  565. 将坐标字符化
  566. - 返回值 `string`
  567. - **_toArray()_**
  568. 将坐标数组化
  569. - 返回值 `array`
  570. - **_toObject()_**
  571. 将坐标对象化
  572. - 返回值 `Object`
  573. ### static methods
  574. - **_fromString(str)_**
  575. 将字符化坐标转换为坐标对象
  576. - 参数
  577. - `{String} str`:字符化坐标
  578. - 返回值 `position`
  579. - **_fromArray(array)_**
  580. 将数组化坐标转换为坐标对象
  581. - 参数
  582. - `{Array} array`:数组化坐标
  583. - 返回值 `position`
  584. - **_fromObject(obj)_**
  585. 将 Json 对象坐标转换为坐标对象
  586. - 参数
  587. - `{Object} obj`:Json 对象坐标
  588. - 返回值 `position`
  589. - **_fromCoordString(str)_** `deprecated`
  590. 字符坐标串转换为坐标对象
  591. - 参数
  592. - `{String} str`:字符坐标串
  593. - 返回值 `position`
  594. - **_fromCoordArray(array)_** `deprecated`
  595. 坐标数组转换为坐标对象
  596. - 参数
  597. - `{Array<String|Number>} array`:坐标数组
  598. - 返回值 `position`
  599. - **_deserialize(valStr)_**
  600. 反序列化
  601. - 参数
  602. - `{String} valStr`:序列化的对象
  603. - 返回值 `position`
  604. ## DC.Color
  605. > 颜色类
  606. ### example
  607. ```js
  608. let red = DC.Color.RED
  609. ```
  610. ### properties
  611. - `{Color} RED`:红色
  612. - `{Color} YELLOW`:黄色
  613. - `{Color} WHITE`:白色
  614. - `{Color} GREEN`:绿色
  615. [其他颜色](http://resource.dvgis.cn/cesium-docs/Color.html)
  616. ## DC.TilesetStyle
  617. > tileset 样式,用于设置 3dtiles 的颜色设置
  618. ### example
  619. ```js
  620. let style = new DC.TilesetStyle()
  621. style.color = {
  622. conditions: [
  623. ['${floor} >= 5', 'rgb(198, 106, 11)'],
  624. ['true', 'rgb(127, 59, 8)'],
  625. ],
  626. }
  627. ```
  628. [详情参考](http://resource.dvgis.cn/cesium-docs/Cesium3DTileStyle.html)
  629. ## DC.JulianDate
  630. > 朱莉安日历
  631. ```js
  632. let date = DC.JulianDate.now()
  633. ```
  634. ### static methods
  635. - **_now()_**
  636. 当前朱莉安时间
  637. - 返回值 `date`
  638. - **_fromDate(date)_**
  639. 通过 Js 时间创建朱莉安时间
  640. - 参数
  641. - `{Date} date`:Js 时间
  642. - 返回值 `date`
  643. [JulianDate](http://resource.dvgis.cn/cesium-docs/JulianDate.html)
  644. ## DC.Rectangle
  645. > 矩形相关函数
  646. ### example
  647. ```js
  648. let r = DC.Rectangle.fromDegrees(10, 20, 12, 31)
  649. ```
  650. [详情参考](http://resource.dvgis.cn/cesium-docs/Rectangle.html)
  651. ## DC.CallbackProperty
  652. > 回调属性,用户通过自定义回调函数来返回需要的值。回调函数中,用户可以使用 time 给定 value,也可以自定设置。
  653. ```js
  654. let position = new DC.Position(120, 20)
  655. let point = new DC.Point(position)
  656. let size = 0
  657. point.setStyle({
  658. pixelSize: new DC.CallbackProperty((time) => {
  659. size += 1
  660. if (size == 10) {
  661. size = 0
  662. }
  663. return size
  664. }),
  665. })
  666. ```
  667. ## DC.Parse
  668. > 坐标解析工具类,可简写为 DC.P
  669. ```js
  670. let position = DC.P.parsePosition('123,32,0')
  671. ```
  672. ### static methods
  673. - **_parsePosition(position)_**
  674. 解析坐标为 DC.Position
  675. - 参数
  676. - `{String|Array|Position} position`:坐标
  677. - 返回值 `position`
  678. - **_parsePositions(positions)_**
  679. 解析坐标为 Array<DC.Position>
  680. - 参数
  681. - `{String|Array} positions`: 坐标
  682. - 返回值 `array`
  683. - **_parsePointCoordToArray(position)_**
  684. 解析点位坐标为数组
  685. - 参数
  686. - `{String|Position} position`:点位坐标
  687. - 返回值 `array`
  688. - **_parsePolylineCoordToArray(positions)_**
  689. 解析线坐标为二维数组
  690. - 参数
  691. - `{String|Array} positions`:线坐标
  692. - 返回值 `array`
  693. - **_parsePolygonCoordToArray(positions,loop)_**
  694. 解析面坐标为三维数组
  695. - 参数
  696. - `{String|Array} positions`:面坐标
  697. - `{Boolean} loop`:闭合
  698. - 返回值 `array`
  699. ## DC.Transform
  700. > 坐标转换工具类 ,可简写为 DC.T
  701. ```js
  702. let cartesian3 = DC.T.transformWGS84ToCartesian(new DC.Position(120, 20))
  703. ```
  704. ### static methods
  705. - **_transformCartesianToWGS84(cartesian)_**
  706. 世界坐标转换为 84 坐标
  707. - 参数
  708. - `{Cartesian3} cartesian`:世界坐标
  709. - 返回值 `position`
  710. - **_transformWGS84ToCartesian(position)_**
  711. 84 坐标转换为世界坐标
  712. - 参数
  713. - `{Position} position`:84 坐标
  714. - 返回值 `cartesian`
  715. - **_transformWGS84ToCartographic(position)_**
  716. 84 坐标转换为制图坐标
  717. - 参数
  718. - `{Position} position`:84 坐标
  719. - 返回值 `cartographic`
  720. - **_transformCartesianArrayToWGS84Array(cartesianArr)_**
  721. 世界坐标数组转 84 坐标数组
  722. - 参数
  723. - `{Array<cartesian3>} cartesianArr`:世界坐标数组
  724. - 返回值 `array`
  725. - **_transformWGS84ArrayToCartesianArray(WGS84Arr)_**
  726. 84 坐标数组转世界坐标数组
  727. - 参数
  728. - `{Array<cartesian3>} WGS84Arr`:84 坐标数组
  729. - 返回值 `array`
  730. - **_transformWGS84ToMercator(position)_**
  731. 84 坐标转 Mercator
  732. - 参数
  733. - `{Position} position`:84 坐标
  734. - 返回值 `position`
  735. - **_transformMercatorToWGS84(position)_**
  736. Mercator 坐标转 84
  737. - 参数
  738. - `{Position} position`:Mercator 坐标
  739. - 返回值 `position`
  740. - **_transformWindowToWGS84(position,viewer)_**
  741. 屏幕坐标转 84
  742. - 参数
  743. - `{Object} position`: 屏幕坐标,格式`{x:1,y:1}`
  744. - `{Viewer} viewer`:3D 场景
  745. - 返回值 `position`
  746. - **_transformWGS84ToWindow(position,viewer)_**
  747. 84 转屏幕坐标
  748. - 参数
  749. - `{Position} position`: 84 坐标
  750. - `{Viewer} viewer`:3D 场景
  751. - 返回值 `Object`
  752. ## DC.CoordTransform
  753. > 国内坐标转换工具
  754. ```js
  755. let point = DC.CoordTransform.BD09ToGCJ02(120, 20)
  756. ```
  757. ### static methods
  758. - **_BD09ToGCJ02(lng, lat)_**
  759. 百度坐标系 (BD-09) 的转换 火星坐标系 (GCJ-02)
  760. - 参数
  761. - `{Number} lng`:经度
  762. - `{Number} lat`:纬度
  763. - 返回值 `[]`
  764. - **_GCJ02ToBD09(lng, lat)_**
  765. 火星坐标系 (GCJ-02) 转换为 百度坐标系 (BD-09)
  766. - 参数
  767. - `{Number} lng`:经度
  768. - `{Number} lat`:纬度
  769. - 返回值 `[]`
  770. - **_WGS84ToGCJ02(lng, lat)_**
  771. WGS-84 转换为 火星坐标系 (GCJ-02)
  772. - 参数
  773. - `{Number} lng`:经度
  774. - `{Number} lat`:纬度
  775. - 返回值 `[]`
  776. - **_GCJ02ToWGS84(lng, lat)_**
  777. 火星坐标系 (GCJ-02) 转换为 WGS-84
  778. - 参数
  779. - `{Number} lng`:经度
  780. - `{Number} lat`:纬度
  781. - 返回值 `[]`
  782. ## DC.Math
  783. > 基本函数类
  784. ### static methods
  785. - **_area(positions)_**
  786. 面积,单位:平方米
  787. - 参数
  788. - `{Array<Position>} positions`: 点位数据
  789. - 返回值 `number`
  790. - **_bounds(positions , expand)_**
  791. 边界
  792. - 参数
  793. - `{Array<Position>} positions`: 点位数据
  794. - `{Number}} expand`: 扩展比例:0~1
  795. - 返回值 `object`
  796. - **_mid(start , end)_**
  797. 两点之间的中心点
  798. - 参数
  799. - `start`: 开始位置
  800. - `end`: 结束位置
  801. - 返回值 `position`
  802. - **_center(positions)_**
  803. 中心点
  804. - 参数
  805. - `{Array<Position>} positions`: 点位数据
  806. - 返回值 `position`
  807. - **_distance(positions)_**
  808. 距离,单位:米
  809. - 参数
  810. - `{Array<Position>} positions`: 点位数据
  811. - 返回值 `number`
  812. - **_heading(start,end)_**
  813. 偏转角度,单位:度
  814. - 参数
  815. - `start`: 开始位置
  816. - `end`: 结束位置
  817. - 返回值 `number`
  818. - **_parabola(start, end,height,count)_**
  819. 抛物线
  820. - 参数
  821. - `start`: 开始位置
  822. - `end`: 结束位置
  823. - `{Number} height`: 最高点高度
  824. - `{Number} count`: 点位数量
  825. - 返回值 `Array`
  826. > [more](http://resource.dvgis.cn/cesium-docs/Math.html)
  827. ## DC.Util
  828. > 工具类
  829. ### static methods
  830. - **_uuid(prefix)_**
  831. 生成 uuid
  832. - 参数
  833. - `{String} prefix`:前缀,默认为 D
  834. - 返回值 `string`
  835. - **_merge(dest, ...sources)_**
  836. 属性合并
  837. - 参数
  838. - `{Object} dest`:目标对象
  839. - `{Object|Array} sources`:需要合并的属性
  840. - 返回值 `object`
  841. - **_emptyImageUrl()_**
  842. 空图片
  843. - **_debounce(fn,delay)_**
  844. 防抖
  845. - **_throttle(fn,delay)_**
  846. 节流
  847. ## DC.DomUtil
  848. > Dom 工具类
  849. ### static methods
  850. - **_get(id)_**
  851. 创建 dom
  852. - 参数
  853. - `{String} id`: 要素 ID
  854. - 返回值 `Element`
  855. - **_create(tagName, className, [container])_**
  856. 创建 dom
  857. - 参数
  858. - `{String} tagName`: 标签名
  859. - `{String} className`: 样式名,多个用空格隔开
  860. - `{Element} [container]`: 父容器
  861. - 返回值 `Element`
  862. - **_addClass(el, name)_**
  863. 添加类名
  864. - 参数
  865. - `{Element} el`: 要素
  866. - `{String} className`: 样式名,多个用空格隔开
  867. - **_removeClass(el, name)_**
  868. 删除类名
  869. - 参数
  870. - `{Element} el`: 要素
  871. - `{String} className`: 样式名,多个用空格隔开
  872. - **_addClass(el, name)_**
  873. 添加类名
  874. - 参数
  875. - `{Element} el`: 要素
  876. - `{String} className`: 样式名,多个用空格隔开
  877. - **_createSvg(width, height, path, [container])_**
  878. 添加类名
  879. - 参数
  880. - `{Number} width`: 宽度
  881. - `{Number} height`: 高度
  882. - `{String} path`: 路径
  883. - `{Element} [container]`: 父容器
  884. - 返回值 `svg`
  885. - **_parseDom(domStr, [withWrapper], [className])_**
  886. 字符串转 Dom
  887. - 参数
  888. - `{String} domStr`: dom 字符串
  889. - `{Boolean} withWrapper`:返回是否含有父容器
  890. - `{String} className`: 类样式名称
  891. - 返回值 `Element | Nodes`
  892. - **_enterFullscreen(el)_**
  893. 进入全屏
  894. - 参数
  895. - `{Element} el`: 要素
  896. - **_exitFullscreen()_**
  897. 退出全屏
  898. - **_createVideo(url, className, [container])_**
  899. 创建视频节点
  900. - 参数
  901. - `{String} url`: 视频地址
  902. - `{String} className`: 样式名,多个用空格隔开
  903. - `{Element} [container]`: 父容器
  904. - 返回值 `Element | Nodes`