You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

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