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.

MapvLayer.js 1.5KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. /**
  2. * @Author: Caven
  3. * @Date: 2020-09-19 13:26:20
  4. */
  5. import { mapv } from '@dc-modules/namespace'
  6. import State from '@dc-modules/state/State'
  7. import { Layer } from '@dc-modules/layer'
  8. class MapvLayer extends Layer {
  9. constructor(id, option = {}) {
  10. if (!mapv) {
  11. throw new Error('MapvLayer:miss mapv lib')
  12. }
  13. super(id)
  14. this._option = option
  15. this._dataSet = undefined
  16. this._delegate = undefined
  17. this.type = Layer.getLayerType('mapv')
  18. }
  19. set show(show) {
  20. this._show = show
  21. if (this._delegate) {
  22. this._show ? this._delegate.show() : this._delegate.hide()
  23. }
  24. }
  25. get show() {
  26. return this._show
  27. }
  28. get state() {
  29. return this._state
  30. }
  31. /**
  32. *
  33. * @param {*} viewer
  34. * the layer added handler function
  35. * subclasses need to be overridden
  36. */
  37. _onAdd(viewer) {
  38. this._viewer = viewer
  39. this._delegate = new mapv.cesiumMapLayer(
  40. this._viewer.delegate,
  41. this._dataSet || new mapv.DataSet([]),
  42. this._option
  43. )
  44. viewer.scene.canvas.setAttribute('tabIndex', 0)
  45. this._state = State.ADDED
  46. }
  47. /**
  48. * the layer removed handler function
  49. * subclasses need to be overridden
  50. */
  51. _onRemove() {
  52. this._delegate && this._delegate.remove()
  53. this._state = State.REMOVED
  54. }
  55. /**
  56. *
  57. * @param {*} dataSet
  58. */
  59. setDataSet(dataSet) {
  60. this._dataSet = dataSet
  61. this._delegate &&
  62. this._delegate.update({ data: this._dataSet, option: this._option })
  63. }
  64. }
  65. Layer.registerType('mapv')
  66. export default MapvLayer