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 25KB

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