类名 common/base/symbol/MarkerSymbol.js
import { defaultValue } from '../../util'
import { SymbolType } from '../enum'
import Symbol from './Symbol'

/**
 * Marker符号基类
 * @class MarkerSymbol
 * @moduleEX SymbolModule
 * @extends Symbol
 * @param {Object} options 构造参数
 * @param {Number} [options.xoffset = 0] marker的x轴偏移,单位像素
 * @param {Number} [options.yoffset = 0] marker的y轴偏移,单位像素
 * @param {Number} [options.angle = 0 ] 旋转角度,单位度,0~360度
 */
class MarkerSymbol extends Symbol {
  constructor(options) {
    super(options)
    options = defaultValue(options, {})
    /**
     * 符号类型
     * @member {String} MarkerSymbol.prototype.type
     */
    this.type = SymbolType.simpleMarker
    /**
     * marker的x轴偏移
     * @member {Number} MarkerSymbol.prototype.xoffset
     */
    this.xoffset = defaultValue(options.xoffset, 0)
    /**
     * marker的y轴偏移
     * @member {Number} MarkerSymbol.prototype.yoffset
     */
    this.yoffset = defaultValue(options.yoffset, 0)
    /**
     * 旋转角度
     * @member {Number} MarkerSymbol.prototype.angle
     */
    this.angle = defaultValue(options.angle, 0)
  }

  /**
   * 将JS对象转换为JSON格式
   * @returns {Object} 符号的实例化JSON
   */
  toJSON() {
    const json = super.toJSON()
    json.angle = this.angle
    json.xoffset = this.xoffset
    json.yoffset = this.yoffset
    return json
  }

  /**
   * 克隆并返回新的符号对象
   * @return {MarkerSymbol} 克隆后的新符号对象
   */
  clone() {
    return new MarkerSymbol(this.toJSON())
  }
}
export default MarkerSymbol
构造函数
成员变量
方法
事件