类名 common/sketchEditor/base/SketchStyle.js
import { Color, Zondy } from '../../base'
import {
  SimpleMarkerSymbol,
  SimpleLineSymbol,
  SimpleFillSymbol,
  TextSymbol
} from '../../base/symbol'
import { defaultValue } from '../../util'

/**
 * 草图样式管理类
 * @classdesc 草图样式管理类
 * @class SketchStyle
 * @moduleEX SketchEditorModule
 * @param {Object} options
 * @param {SimpleMarkerSymbol} [options.vertexStyle] 草图点样式
 * @param {SimpleLineSymbol} [options.lineStyle] 草图线样式
 * @param {SimpleFillSymbol} [options.fillStyle] 草图区样式
 * @param {TextSymbol} [options.selectBoxStyle] 草图选中框样式
 * @param {TextSymbol} [options.selectBoxVertexStyle] 草图选中框的顶点样式
 * @param {TextSymbol} [options.selectVertexStyle]  草图选中时,被编辑中点样式
 * @param {TextSymbol} [options.selectMidVertexStyle] 草图选中时,被编辑中点样式
 * @param {Boolean} [options.isShowSegmentLength] 是否显示分段长度
 * @param {Boolean} [options.isShowArea] 是否显示面积
 */
class SketchStyle {
  constructor(options) {
    options = defaultValue(options, {})
    /**
     * 绘制草图点样式
     */
    this._vertexStyle = defaultValue(
      options.vertexStyle,
      new SimpleMarkerSymbol({
        color: new Color(24, 144, 255, 1),
        size: 10,
        outline: new SimpleLineSymbol({
          color: new Color(255, 255, 255, 1),
          width: 1
        })
      })
    )
    /**
     * 绘制草图线样式
     */
    this._lineStyle = defaultValue(
      options.lineStyle,
      new SimpleLineSymbol({
        color: new Color(24, 144, 255, 1),
        width: 3
      })
    )
    /**
     * 绘制草图区样式
     */
    this._fillStyle = defaultValue(
      options.fillStyle,
      new SimpleFillSymbol({
        color: new Color(24, 144, 255, 0.3),
        outline: new SimpleLineSymbol({
          color: new Color(24, 144, 255, 1),
          width: 2
        })
      })
    )
    this._textStyle = defaultValue(
      options.textStyle,
      new TextSymbol({
        color: new Color(255, 255, 255, 1),
        font: {
          size: 15
        }
      })
    )
    /**
     * 草图正在移动线样式
     */
    this._movingLineStyle = defaultValue(
      options.lineStyle,
      new SimpleLineSymbol({
        color: new Color(255, 255, 0, 1),
        width: 2
      })
    )
    /**
     * 草图选中框的样式
     */
    this._selectBoxStyle = defaultValue(
      options.selectBoxStyle,
      new SimpleFillSymbol({
        color: new Color(241, 188, 0, 0.1),
        outline: new SimpleLineSymbol({
          color: new Color(241, 188, 0, 0.8),
          width: 2
        })
      })
    )
    /**
     * 草图选中框的顶点样式
     */
    this._selectBoxVertexStyle = defaultValue(
      options.selectBoxVertexStyle,
      new SimpleMarkerSymbol({
        color: new Color(255, 255, 255, 1),
        size: 10,
        outline: new SimpleLineSymbol({
          color: new Color(241, 188, 0, 1),
          width: 3
        })
      })
    )

    /**
     * 草图选中时,被编辑顶点样式
     */
    this._selectVertexStyle = defaultValue(
      options.selectVertexStyle,
      new SimpleMarkerSymbol({
        color: new Color(241, 188, 0, 1),
        size: 11,
        outline: new SimpleLineSymbol({
          color: new Color(255, 255, 255, 1),
          width: 1
        })
      })
    )
    /**
     * 草图选中时,被编辑中点样式
     */
    this._selectMidVertexStyle = defaultValue(
      options.selectMidVertexStyle,
      new SimpleMarkerSymbol({
        color: new Color(255, 255, 255, 1),
        size: 8,
        outline: new SimpleLineSymbol({
          color: new Color(241, 188, 0, 1),
          width: 1
        })
      })
    )
    /**
     * 捕获点重合样式
     */
    this._coincidentPointStyle = defaultValue(
      options.coincidentPointStyle,
      new SimpleMarkerSymbol({
        color: new Color(255, 255, 0, 1),
        size: 10,
        outline: new SimpleLineSymbol({
          color: new Color(255, 255, 255, 1),
          width: 1
        })
      })
    )
    /**
     * 是否显示分段长度
     */
    this._isShowSegmentLength = defaultValue(options.isShowSegmentLength, false)
    /**
     * 是否显示面积
     */
    this._isShowArea = defaultValue(options.isShowArea, false)
  }

  /**
   * 点样式
   * @readonly
   * @member SketchStyle.property.vertexStyle
   * @type {SimpleMarkerSymbol}
   */
  get vertexStyle() {
    return this._vertexStyle
  }

  /**
   * 线样式
   * @readonly
   * @member SketchStyle.property.lineStyle
   * @type {SimpleLineSymbol}
   */
  get lineStyle() {
    return this._lineStyle
  }

  /**
   * 填充样式
   * @readonly
   * @member SketchStyle.property.fillStyle
   * @type {SimpleFillSymbol}
   */
  get fillStyle() {
    return this._fillStyle
  }

  /**
   * 文字样式
   * @readonly
   * @member SketchStyle.property.textStyle
   * @type {TextSymbol}
   */
  get textStyle() {
    return this._textStyle
  }

  /**
   * 是否显示分段长度
   * @readonly
   * @member SketchStyle.property.isShowSegmentLength
   * @type {Boolean}
   */
  get isShowSegmentLength() {
    return this._isShowSegmentLength
  }

  /**
   * 是否显示面积
   * @readonly
   * @member SketchStyle.property.isShowArea
   * @type {Boolean}
   */
  get isShowArea() {
    return this._isShowArea
  }
}
export default SketchStyle
Zondy.SketchStyle = SketchStyle
构造函数
成员变量
方法
事件