Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  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._state = State.INITIALIZED
  18. }
  19. get type() {
  20. return Layer.getLayerType('mapv')
  21. }
  22. set show(show) {
  23. this._show = show
  24. if (this._delegate) {
  25. this._show ? this._delegate.show() : this._delegate.hide()
  26. }
  27. }
  28. get show() {
  29. return this._show
  30. }
  31. get state() {
  32. return this._state
  33. }
  34. /**
  35. *
  36. * @param {*} viewer
  37. * the layer added handler function
  38. * subclasses need to be overridden
  39. */
  40. _onAdd(viewer) {
  41. this._viewer = viewer
  42. this._delegate = new mapv.cesiumMapLayer(
  43. this._viewer.delegate,
  44. this._dataSet || new mapv.DataSet([]),
  45. this._option
  46. )
  47. viewer.scene.canvas.setAttribute('tabIndex', 0)
  48. this._state = State.ADDED
  49. }
  50. /**
  51. * the layer removed handler function
  52. * subclasses need to be overridden
  53. */
  54. _onRemove() {
  55. this._delegate && this._delegate.remove()
  56. this._state = State.REMOVED
  57. }
  58. /**
  59. *
  60. * @param {*} dataSet
  61. */
  62. setDataSet(dataSet) {
  63. this._dataSet = dataSet
  64. this._delegate &&
  65. this._delegate.update({ data: this._dataSet, option: this._option })
  66. }
  67. }
  68. Layer.registerType('mapv')
  69. export default MapvLayer