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.

LabelPrimitive.js 1.7KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. /**
  2. * @Author: Caven
  3. * @Date: 2021-06-03 22:28:49
  4. */
  5. import State from '@dc-modules/state/State'
  6. import Parse from '@dc-modules/parse/Parse'
  7. import { Util } from '@dc-modules/utils'
  8. import { Transform } from '@dc-modules/transform'
  9. import Overlay from '../Overlay'
  10. class LabelPrimitive extends Overlay {
  11. constructor(position, text) {
  12. super()
  13. this._position = Parse.parsePosition(position)
  14. this._text = text
  15. this._delegate = {
  16. position: undefined,
  17. text: undefined
  18. }
  19. this._state = State.INITIALIZED
  20. }
  21. get type() {
  22. return Overlay.getOverlayType('label_primitive')
  23. }
  24. set position(position) {
  25. this._position = Parse.parsePosition(position)
  26. this._delegate.position = Transform.transformWGS84ToCartesian(
  27. this._position
  28. )
  29. return this
  30. }
  31. get position() {
  32. return this._position
  33. }
  34. set text(text) {
  35. this._text = text
  36. this._delegate.text = this._text
  37. return this
  38. }
  39. get text() {
  40. return this._text
  41. }
  42. _mountedHook() {
  43. /**
  44. * set the location
  45. */
  46. this.position = this._position
  47. /**
  48. * initialize the Overlay parameter
  49. */
  50. this.text = this._text
  51. }
  52. /**
  53. *
  54. * @param {*} text
  55. * @param {*} textStyle
  56. */
  57. setLabel(text, textStyle) {
  58. return this
  59. }
  60. /**
  61. * Sets Style
  62. * @param style
  63. * @returns {LabelPrimitive}
  64. */
  65. setStyle(style) {
  66. if (!style || Object.keys(style).length === 0) {
  67. return this
  68. }
  69. delete style['position'] && delete style['text']
  70. Util.merge(this._style, style)
  71. Util.merge(this._delegate, style)
  72. return this
  73. }
  74. }
  75. Overlay.registerType('label_primitive')
  76. export default LabelPrimitive