类名 common/base/symbol/SimpleFillSymbol.js
import Zondy from '../Zondy'
import { defaultValue } from '../../util'
import { SymbolType } from '../enum'
import FillSymbol from './FillSymbol'

/**
 * 简单填充符号,参考示例:<a href='#new-SimpleFillSymbol'>[填充符号样式]</a>
 * <br><br>[ES5引入方式]:<br/>
 * Zondy.Symbol.SimpleFillSymbol() <br/>
 * [ES6引入方式]:<br/>
 * import { SimpleFillSymbol } from "@mapgis/webclient-common" <br/>
 * <br/>
 * @class SimpleFillSymbol
 * @moduleEX SymbolModule
 * @extends FillSymbol
 * @param {Object} options 构造参数
 * @param {Color|String} [options.color = new Color(255, 255, 255, 0.25)] 填充颜色
 * @param {SimpleLineSymbol} [options.outline = new SimpleLineSymbol()] 外边线样式
 * @param {String} [options.style = 'solid'] 填充样式,默认"solid",可选"backward-diagonal"|"cross"|"diagonal-cross"|"forward-diagonal"|"horizontal"|"none"|"solid"|"vertical"
 *
 * @summary <h5>支持如下方法:</h5>
 * [1、克隆并返回新的符号对象]{@link Symbol#clone} <br/>
 * [2、导出一个JSON对像]{@link Symbol#toJSON} <br/>
 * <a href='#fromJSON'>[3、通过json构造并返回一个新的SimpleFillSymbol对象]</a>
 *
 * @example <caption><h7 id='new-SimpleFillSymbol'>填充符号样式</h7></caption>
 * // ES5引入方式
 * const { SimpleFillSymbol } = Zondy.Symbol
 * const { Color } = Zondy
 * // ES6引入方式
 * import { SimpleFillSymbol, Color } from "@mapgis/webclient-common"
 * const simpleFillSymbol = new SimpleFillSymbol({
 *   // 填充颜色
 *   color: new Color(255, 0, 0, 1),
 *   // 填充样式
 *   style: "solid",
 *   // 外边线样式
 *   outline: new SimpleLineSymbol({
 *     // 外边线颜色
 *     color: new Color(255, 0, 0, 1),
 *     // 外边线宽度
 *     width: 2
 *   })
 * })
 */
class SimpleFillSymbol extends FillSymbol {
  constructor(options) {
    super(options)
    options = defaultValue(options, {})
    /**
     * 符号类型
     * @member {String} SimpleFillSymbol.prototype.type
     */
    this.type = SymbolType.simpleFill
    /**
     * 填充样式
     * @member {String} SimpleFillSymbol.prototype.style
     */
    this.style = defaultValue(options.style, 'solid')
  }

  /**
   * 通过json构造并返回一个新的SimpleFillSymbol对象<a id='fromJSON'></a>
   * @param {Object} json 符号的实例化JSON
   * @return {SimpleFillSymbol} 新的SimpleFillSymbol对象
   * @example <caption><h7>通过json构造并返回一个新的SimpleFillSymbol对象</h7></caption>
   */
  static fromJSON(json) {
    json = defaultValue(json, {})
    return new SimpleFillSymbol(json)
  }

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

  /**
   * 导出为JSON对象
   * @return {Object} JSON对像
   */
  toJSON() {
    const json = super.toJSON()
    json.style = this.style
    return json
  }
}
Zondy.Symbol.SimpleFillSymbol = SimpleFillSymbol
export default SimpleFillSymbol
构造函数
成员变量
方法
事件