|                                                           | 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 | /**
 * @Author: Caven
 * @Date: 2021-11-08 20:35:42
 */
import Overlay from '../Overlay'
import State from '../../state/State'
import Parse from '../../parse/Parse'
import { Transform } from '../../transform'
import { Util } from '../../utils'
class CloudPrimitive extends Overlay {
  constructor(position) {
    super()
    this._position = Parse.parsePosition(position)
    this._delegate = {
      position: undefined,
      scale: { x: 12, y: 8 },
    }
    this._state = State.INITIALIZED
  }
  get type() {
    return Overlay.getOverlayType('cloud_primitive')
  }
  set position(position) {
    this._position = Parse.parsePosition(position)
    this._delegate.position = Transform.transformWGS84ToCartesian(
      this._position
    )
  }
  get position() {
    return this._position
  }
  _mountedHook() {
    /**
     * set the location
     */
    this.position = this._position
  }
  /**
   *
   * @param style
   * @returns {CloudPrimitive}
   */
  setStyle(style) {
    if (!style || Object.keys(style).length === 0) {
      return this
    }
    delete style['position']
    Util.merge(this._style, style)
    Util.merge(this._delegate, style)
    return this
  }
}
Overlay.registerType('cloud_primitive')
export default CloudPrimitive
 |