类名 common/base/symbol/support/LineSymbolMarker.js
import { defaultValue } from '../../../util'
import Color from '../../Color'
/**
 * 标记符号
 * @author 基础平台-潘卓然
 * @class LineSymbolMarker
 * @moduleEX SymbolModule
 * @classdesc 线符号标记
 * @param {options} options 构造参数
 * @param {String} [options.type = 'line-marker'] marker类型:只能是'line-marker'
 * @param {String|Color} [options.color] 线符号标记颜色,默认为'rgb(0,0,0)'
 * @param {String} [options.placement = "begin-end"] 线符号标记摆放位置,"begin"|"end"|"begin-end"
 * @param {LineMarkerStyle} [options.style = 'arrow'] 线符号标记样式,可选值"arrow"|"circle"|"square"|"diamond"|"cross"|"x"
 */
class LineSymbolMarker {
  constructor(options) {
    options = defaultValue(options, {})
    this.type = 'line-marker'
    this.color = Color.fromColor(defaultValue(options.color, {}))
    this.placement = defaultValue(options.placement, 'begin-end')
    this.style = defaultValue(options.style, 'arrow')
  }

  /**
   * 通过json构造并返回一个新的LineSymbolMarker对象
   * @param {Object} json 符号的实例化JSON
   * @return {LineSymbolMarker} 新的LineSymbolMarker对象
   */
  static fromJSON(json) {
    json = defaultValue(json, {})
    return new LineSymbolMarker(json)
  }

  /**
   * 将JS对象转换为JSON格式
   * @returns {Object} 符号的实例化JSON
   */
  toJSON() {
    return {
      type: this.type,
      color: Color.fromColor(this.color).toJSON(),
      placement: this.placement,
      style: this.style
    }
  }

  /**
   * 克隆并返回新的符号对象
   * @return {SimpleFillSymbol} 克隆后的新符号对象
   */
  clone() {
    return new LineSymbolMarker(this.toJSON())
  }
}

export default LineSymbolMarker
构造函数
成员变量
方法
事件