Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

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