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.

base.md 27KB

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