Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

vor 2 Jahren
vor 2 Jahren
vor 2 Jahren
vor 2 Jahren
vor 2 Jahren
vor 2 Jahren
vor 2 Jahren
vor 2 Jahren
vor 2 Jahren
vor 2 Jahren
vor 2 Jahren
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772
  1. # 图层 API 🌎
  2. 将具有相同业务逻辑或属性的覆盖元素进行分类,以便于同一管理
  3. ## DC.Layer
  4. > 图层的基类,其子类是实例化后需添加到三维场景中方可展示各类三维数据
  5. :::warning
  6. 该基本类无法实例化,既视实例化后也无法使用
  7. :::
  8. ### properties
  9. - `{String} id`:唯一标识 **_`readonly`_**
  10. - `{Boolean} show`:是否显示
  11. - `{Object} attr`:业务属性
  12. - `{String} state`:图层状态 **_`readonly`_**
  13. - `{String} type`:图层类型 **_`readonly`_**
  14. ### methods
  15. - **_addOverlay(overlay)_**
  16. 添加覆盖物
  17. - 参数
  18. - `{Overlay} overlay`:覆盖物
  19. - 返回值 `this`
  20. - **_addOverlays(overlays)_**
  21. 添加覆盖物数组
  22. - 参数
  23. - `{Array<Overlay>} overlays`:覆盖物数组
  24. - 返回值 `this`
  25. - **_removeOverlay(overlay)_**
  26. 删除覆盖物
  27. - 参数
  28. - `{Overlay} overlay`:覆盖物
  29. - 返回值 `this`
  30. - **_getOverlay(overlayId)_**
  31. 根据 Id 获取覆盖物`(不推荐用)`
  32. - 参数
  33. - `{String} overlayId`:覆盖物唯一标识(默认产生)
  34. - 返回值 `overlay`
  35. - **_getOverlayById(Id)_**
  36. 根据业务 Id 获取覆盖物`(推荐用)`
  37. - 参数
  38. - `{String} Id`:覆盖物业务唯一标识
  39. - 返回值 `overlay`
  40. - **_getOverlaysByAttr(attrName, attrVal)_**
  41. 根据覆盖物属性获取覆盖物
  42. - 参数
  43. - `{String} attrName`:属性名称
  44. - `{Object} attrVal`:属性值
  45. - 返回值 `array`
  46. ```js
  47. overlay.attr.name = 'test' //设置覆盖物的属性
  48. let arr = layer.getOverlaysByAttr('name', 'test') //根据属性获取覆盖物
  49. ```
  50. - **_getOverlays()_**
  51. 获取所有覆盖物
  52. - 返回值 `array`
  53. - **_eachOverlay(method, context)_**
  54. 遍历覆盖物
  55. - 参数
  56. - `{Function} method`:回调函数,参数为每一个覆盖物
  57. - `{Object} context`:上下文
  58. - 返回值 `this`
  59. ```js
  60. layer.eachOverlay((item) => {})
  61. ```
  62. - **_clear()_**
  63. 清空图层
  64. - 返回值 `this`
  65. - **_remove()_**
  66. 删除图层
  67. - 返回值 `this`
  68. - **_addTo(viewer)_**
  69. 添加图层到场景
  70. - 参数
  71. - `{Viewer|World} viewer`:场景
  72. - 返回值 `this`
  73. - **_on(type, callback, context)_**
  74. 事件订阅
  75. - 参数
  76. - `{Object} type` :订阅类型
  77. - `{Function} callback` :订阅回调
  78. - `{Object} context` :上下文
  79. - 返回值 `this`
  80. - **_off(type, callback, context)_**
  81. 取消事件订阅
  82. - 参数
  83. - `{Object} type` :订阅类型
  84. - `{Function} callback` :订阅回调
  85. - `{Object} context` :上下文
  86. - 返回值 `this`
  87. - **_fire(type,params)_**
  88. 触发事件
  89. - 参数
  90. - `{Object} type` :订阅类型
  91. - `{Object} params` :参数
  92. - 返回值 `this`
  93. ### static methods
  94. - **_registerType(type)_**
  95. 注册图层类型
  96. - 参数
  97. - `{String} type`:图层类型
  98. - **_getLayerType()_**
  99. 获取图层类型
  100. - 返回值 `string`
  101. ## DC.LayerGroup
  102. > 图层组,将图层按一定的逻辑分组,方便统一管理
  103. ### example
  104. ```js
  105. let layerGroup = new DC.LayerGroup('id')
  106. viewer.addLayerGroup(layerGroup)
  107. let layer = new DC.VectorLayer('layer')
  108. layerGroup.addLayer(layer)
  109. ```
  110. ### creation
  111. - **_constructor(id)_**
  112. 构造函数
  113. - 参数
  114. - `{String} id`:图层组唯一标识
  115. - 返回值 `layerGroup`
  116. ### properties
  117. - `{String} id`:唯一标识 **_`readonly`_**
  118. - `{Boolean} show`:是否显示
  119. - `{String} type`:图层类型 **_`readonly`_**
  120. ### methods
  121. - **_addLayer(layer)_**
  122. 添加图层
  123. - 参数
  124. - `{Layer} layer`:图层
  125. - 返回值 `this`
  126. - **_removeLayer(layer)_**
  127. 删除图层
  128. - 参数
  129. - `{Layer} layer`:图层
  130. - 返回值 `this`
  131. - **_getLayer(id)_**
  132. 获取图层
  133. - 参数
  134. - `{String} id`:图层 ID
  135. - 返回值 `layer`
  136. - **_getLayers()_**
  137. 获取所有图层,不包括地图
  138. - 返回值 `layer`
  139. - **_remove()_**
  140. 删除图层组
  141. - 返回值 `this`
  142. - **_addTo(viewer)_**
  143. 添加图层到场景
  144. - 参数
  145. - `{Viewer|World} viewer`:场景
  146. - 返回值 `this`
  147. ## DC.VectorLayer
  148. > 矢量图层,用于添加各类矢量数据(点、线、面等),将矢量数据按一定的逻辑分组,方便统一管理,继承于[Layer](#dc-layer)
  149. ### example
  150. ```js
  151. let layer = new DC.VectorLayer('id')
  152. viewer.addLayer(layer)
  153. ```
  154. ### creation
  155. - **_constructor(id)_**
  156. 构造函数
  157. - 参数
  158. - `{String} id`:图层唯一标识
  159. - 返回值 `vectorLayer`
  160. ## DC.DynamicLayer
  161. > 动态图层,用于添加各类动态矢量数据(图标、模型等),将矢量数据按一定的逻辑分组,方便统一管理,继承于[Layer](#dc-layer)
  162. ### example
  163. ```js
  164. let layer = new DC.DynamicLayer('id')
  165. viewer.addLayer(layer)
  166. ```
  167. ### creation
  168. - **_constructor(id)_**
  169. 构造函数
  170. - 参数
  171. - `{String} id`:图层唯一标识
  172. - 返回值 `dynamicLayer`
  173. ## DC.PrimitiveLayer
  174. > 图元图层,用于添加各类图元数据,将图元数据按一定的逻辑分组,方便统一管理,继承于[Layer](#dc-layer)
  175. ### example
  176. ```js
  177. let layer = new DC.PrimitiveLayer('id')
  178. viewer.addLayer(layer)
  179. ```
  180. ### creation
  181. - **_constructor(id)_**
  182. 构造函数
  183. - 参数
  184. - `{String} id`:图层唯一标识
  185. - 返回值 `primitiveLayer`
  186. ## DC.GroundPrimitiveLayer
  187. > 贴地图元图层,用于添加各类贴地图元数据,将贴地图元数据按一定的逻辑分组,方便统一管理,继承于[Layer](#dc-layer)
  188. ### example
  189. ```js
  190. let layer = new DC.GroundPrimitiveLayer('id')
  191. viewer.addLayer(layer)
  192. ```
  193. ### creation
  194. - **_constructor(id)_**
  195. 构造函数
  196. - 参数
  197. - `{String} id`:图层唯一标识
  198. - 返回值 `groundPrimitiveLayer`
  199. ## DC.TilesetLayer
  200. > 3dTiles 图层,用于添加 3dTiles 模型数据, 继承于[Layer](#dc-layer)
  201. ### example
  202. ```js
  203. let layer = new DC.TilesetLayer('id')
  204. viewer.addLayer(layer)
  205. ```
  206. ### creation
  207. - **_constructor(id)_**
  208. 构造函数
  209. - 参数
  210. - `{String} id`:图层唯一标识
  211. - 返回值 `tilesetLayer`
  212. ## DC.GeoJsonLayer
  213. > GeoJson 图层,用于加载 GeoJson 格式数据,继承于[Layer](#dc-layer),
  214. ### example
  215. ```js
  216. let layer = new DC.GeoJsonLayer('id', '**/**.geojson')
  217. layer.eachOverlay((item) => {
  218. // item 为一个entity,
  219. if (item.polyline) {
  220. //todo
  221. let polyline = DC.Polyline.fromEntity(item)
  222. }
  223. if (item.polygon) {
  224. //todo
  225. let polygon = DC.Polygon.fromEntity(item)
  226. }
  227. if (item.billboard) {
  228. //todo
  229. let point = DC.Point.fromEntity(item)
  230. let divIcon = DC.DivIcon.fromEntity(item)
  231. let billboard = DC.Billboard.fromEntity(item)
  232. }
  233. })
  234. ```
  235. ### creation
  236. - **_constructor(id,url,[options])_**
  237. 构造函数
  238. - 参数
  239. - `{String} id`:图层唯一标识
  240. - `{String} url`:数据地址
  241. - `{Object} options`:属性配置,详情参考:[GeoJsonDataSource](http://resource.dvgis.cn/cesium-docs/GeoJsonDataSource.html)
  242. - 返回值 `geoJsonLayer`
  243. ### methods
  244. - **_toVectorLayer()_**
  245. 转换为矢量图层
  246. - 返回值 `vectorLayer`
  247. - **_toModelLayer(modelUrl)_**
  248. 转换为模型图层
  249. - 参数
  250. - `{String} modelUrl`:模型地址
  251. - 返回值 `vectorLayer`
  252. ## DC.TopoJsonLayer
  253. > TopoJson 图层,用于加载 TopoJson 格式数据,继承于[Layer](#dc-layer),
  254. ### example
  255. ```js
  256. let layer = new DC.GeoJsonLayer('id', '**/**.geojson')
  257. layer.eachOverlay((item) => {
  258. // item 为一个entity,
  259. if (item.polyline) {
  260. //todo
  261. let polyline = DC.Polyline.fromEntity(item)
  262. }
  263. if (item.polygon) {
  264. //todo
  265. let polygon = DC.Polygon.fromEntity(item)
  266. }
  267. if (item.billboard) {
  268. //todo
  269. let point = DC.Point.fromEntity(item)
  270. let divIcon = DC.DivIcon.fromEntity(item)
  271. let billboard = DC.Billboard.fromEntity(item)
  272. }
  273. })
  274. ```
  275. ### creation
  276. - **_constructor(id,url,[options])_**
  277. 构造函数
  278. - 参数
  279. - `{String} id`:图层唯一标识
  280. - `{String} url`:数据地址
  281. - `{Object} options`:属性配置,详情参考:[GeoJsonDataSource](http://resource.dvgis.cn/cesium-docs/GeoJsonDataSource.html)
  282. - 返回值 `topoJsonLayer`
  283. ### methods
  284. - **_toVectorLayer()_**
  285. 转换为矢量图层
  286. - 返回值 `vectorLayer`
  287. - **_toModelLayer(modelUrl)_**
  288. 转换为模型图层
  289. - 参数
  290. - `{String} modelUrl`:模型地址
  291. - 返回值 `vectorLayer`
  292. ## DC.HtmlLayer
  293. > Html 图层,用于加载 DivIcon 节点,继承于[Layer](#dc-layer),
  294. ### example
  295. ```js
  296. let layer = new DC.HtmlLayer('dom')
  297. viewer.addLayer(layer)
  298. ```
  299. ### creation
  300. - **_constructor(id)_**
  301. 构造函数
  302. - 参数
  303. - `{String} id`:图层唯一标识
  304. - 返回值 `htmlLayer`
  305. ## DC.CzmlLayer
  306. > Czml 图层,用于加载 Czml 数据,继承于[Layer](#dc-layer)
  307. ### example
  308. ```js
  309. let layer = new DC.CzmlLayer('id', '**/**.czml')
  310. layer.eachOverlay((item) => {
  311. if (item.polyline) {
  312. //todo
  313. }
  314. if (item.polygon) {
  315. //todo
  316. }
  317. if (item.billboard) {
  318. //todo
  319. }
  320. })
  321. ```
  322. ### creation
  323. - **_constructor(id,url,[options])_**
  324. 构造函数
  325. - 参数
  326. - `{String} id`:图层唯一标识
  327. - `{String} url`:数据地址
  328. - `{Object} options`:属性配置,详情参考:[CzmlDataSource](http://resource.dvgis.cn/cesium-docs/CzmlDataSource.html)
  329. - 返回值 `czmlLayer`
  330. ## DC.KmlLayer
  331. > Kml 图层,用于加载 Kml 数据,继承于[Layer](#dc-layer)
  332. ### example
  333. ```js
  334. let layer = new DC.KmlLayer('id', '**/**.kml')
  335. layer.eachOverlay((item) => {
  336. if (item.polyline) {
  337. //todo
  338. }
  339. if (item.polygon) {
  340. //todo
  341. }
  342. if (item.billboard) {
  343. //todo
  344. }
  345. })
  346. ```
  347. ### creation
  348. - **_constructor(id,url,[options])_**
  349. 构造函数
  350. - 参数
  351. - `{String} id`:图层唯一标识
  352. - `{String} url`:数据地址
  353. - `{Object} options`:属性配置,详情参考:[KmlDataSource](http://resource.dvgis.cn/cesium-docs/KmlDataSource.html)
  354. - 返回值 `kmlLayer`
  355. ## DC.GpxLayer
  356. > GPX 图层,用于加载 gpx 数据,继承于[Layer](#dc-layer)
  357. ### example
  358. ```js
  359. let layer = new DC.GpxLayer('id', '**/**.gpx')
  360. ```
  361. ### creation
  362. - **_constructor(id,url,[options])_**
  363. 构造函数
  364. - 参数
  365. - `{String} id`:图层唯一标识
  366. - `{String} url`:数据地址
  367. - `{Object} options`:属性配置,详情参考:[GpxDataSource](http://resource.dvgis.cn/cesium-docs/GpxDataSource.html)
  368. - 返回值 `gpxLayer`
  369. ## DC.ClusterLayer
  370. > 聚合图层,继承于[Layer](#dc-layer)
  371. ### example
  372. ```js
  373. let layer = new DC.ClusterLayer('id', { image: '' })
  374. viewer.addLayer(layer)
  375. ```
  376. ### creation
  377. - **_constructor(id,[options])_**
  378. 构造函数
  379. - 参数
  380. - `{String} id`:图层唯一标识
  381. - `{Object} options`:属性配置
  382. - 返回值 `clusterLayer`
  383. ```js
  384. // 属性参数(可选)
  385. {
  386. "radius": 40,//像素范围
  387. "maxZoom": 25,
  388. "image": "<单个点图片地址>",
  389. "style": "circle", // circle 、 clustering 、custom
  390. "gradientColors": {
  391. "0.0001": DC.Color.DEEPSKYBLUE,
  392. "0.001": DC.Color.GREEN,
  393. "0.01": DC.Color.ORANGE,
  394. "0.1": DC.Color.RED
  395. },//幅度颜色设置
  396. "gradientImages": {},//幅度图片设置,仅当style为custom有效
  397. "clusterSize":16//集合图标尺寸
  398. "fontSize": 12,
  399. // 字体大小
  400. "fontColor": DC.Color.BLACK //字体颜色
  401. "getCountOffset": (count)=>{return {x:0,y:0}} //字体偏移函数
  402. }
  403. ```
  404. ### methods
  405. - **_setPoints(points)_**
  406. 设置点位
  407. - 参数
  408. - `{Array<Object>} points`:点位信息
  409. - 返回值 `clusterLayer`
  410. ## DC.HeatMapLayer
  411. > 热区图层,继承于[Layer](#dc-layer)
  412. ### example
  413. ```js
  414. let layer = new DC.HeatMapLayer('layer')
  415. viewer.addLayer(layer)
  416. ```
  417. ### creation
  418. - **_constructor(id,bounds,[options])_**
  419. 构造函数
  420. - 参数
  421. - `{String} id`:图层唯一标识
  422. - `{Object} options`:属性配置
  423. - 返回值 `heatMapLayer`
  424. ```json
  425. //属性参数(可选)
  426. {
  427. "gradient": {
  428. "0.5": "green",
  429. "0.6": "orange",
  430. "0.95": "red"
  431. }, //颜色设置
  432. "height": 0, // 高度
  433. "radius": 30, // 半径
  434. "useGround": false, //是否使用贴地模式
  435. "classificationType": 2 //分类 是否影响地形,3D切片或同时影响这两者。0:地形、1:3D切片、2:两者。贴地模式下生效
  436. }
  437. ```
  438. ### methods
  439. - **_setPoints(points)_**
  440. 设置点位
  441. - 参数
  442. - `{Array<Object>} points`:点位信息
  443. - 返回值 `heatMapLayer`
  444. ```json
  445. //点位信息参数
  446. {
  447. "lng": "", //经度
  448. "lat": "", //纬度
  449. "value": 10 //强度
  450. }
  451. ```
  452. ## DC.WindLayer
  453. > 风向图层,继承于[Layer](#dc-layer)
  454. ### example
  455. ```js
  456. let layer = new DC.WindLayer('id')
  457. viewer.addLayer(layer)
  458. ```
  459. ### creation
  460. - **_constructor(id,[options])_**
  461. 构造函数
  462. - 参数
  463. - `{String} id`:图层唯一标识
  464. - `{Object} options`:属性配置
  465. - 返回值 `windLayer`
  466. ```json
  467. //属性参数(可选)
  468. {
  469. "globalAlpha": 0.9, //透明度
  470. "lineWidth": 1, // 线宽
  471. "colorScale": "#fff", //颜色
  472. "velocityScale": 1 / 25,
  473. "maxAge": 90,
  474. "paths": 800, // 路径数
  475. "frameRate": 20,
  476. "useCoordsDraw": true,
  477. "gpet": true
  478. }
  479. ```
  480. ### methods
  481. - **_setData(data,[options])_**
  482. 设置风向数据
  483. - 参数
  484. - `{Object} data`:风向数据
  485. - `{Object} options`:配置信息,参考构造函数的配置信息
  486. - 返回值 `windLayer`
  487. - **_setOptions(options)_**
  488. 设置风向数据
  489. - 参数
  490. - `{Object} options`:配置信息,参考构造函数的配置信息
  491. - 返回值 `windLayer`
  492. ## DC.ChartLayer
  493. > 图表图层,继承于[Layer](#dc-layer)
  494. ### example
  495. ```js
  496. let chartLayer = new DC.ChartLayer('layer')
  497. viewer.addLayer(chartLayer)
  498. ```
  499. :::warning
  500. 图表图层依赖于 echarts 库,使用前请确保全局变量中能够获取到 echarts
  501. :::
  502. ### creation
  503. - **_constructor([id],[option])_**
  504. 构造函数
  505. - 参数
  506. - `{String} id`:唯一标识
  507. - `{Object} option`:echarts 配置,详情参考:[echarts](https://www.echartsjs.com/zh/option.html#title)
  508. - 返回值 `chartLayer`
  509. ```json
  510. // options,其他的参数参考 echarts
  511. {
  512. "animation": false, // 必须要加
  513. "GLMap": {}, //地图
  514. "series": [
  515. {
  516. "coordinateSystem": "GLMap" // 坐标系统
  517. }
  518. ]
  519. }
  520. ```
  521. ### methods
  522. - **_setOption(option)_**
  523. 设置点位
  524. - 参数
  525. - `{Object} option`:echarts 配置,详情参考:[echarts](https://www.echartsjs.com/zh/option.html#title)
  526. - 返回值 `this`