类名 common/document/renderer/support/ClusterInfo.js
import { Symbol } from '../../../base/symbol'
import { defaultValue } from '../../../util'
/**
 * 聚合点数量区间内的符号信息
 * @class ClusterInfo
 * @moduleEX RendererModule
 * @param {Object} options 构造参数
 * @param {Symbol} [options.symbol] 默认的聚合点符号,目前仅支持SimpleMarkerSymbol|PcitureMarkerSymbol部分样式
 * @param {TextSymbol|null} [options.labelSymbol] 聚合信息样式,一般描述聚合点的数量
 * @param {Number} [options.minValue] 最小聚合点
 * @param {Number} [options.maxValue] 最大聚合点
 */
class ClusterInfo {
  constructor(options) {
    options = defaultValue(options, {})
    /**
     * 默认的聚合点符号,目前仅支持SimpleMarkerSymbol|PcitureMarkerSymbol部分样式
     * @member {Symbol} ClusterInfo.prototype.symbol
     */
    this.symbol = Symbol.fromJSON(options.symbol)
    /**
     * 聚合信息样式,一般描述聚合点的数量
     * @member {TextSymbol|null} ClusterInfo.prototype.labelSymbol
     */
    this.labelSymbol = options.labelSymbol
      ? Symbol.fromJSON(options.labelSymbol)
      : null
    /**
     * 最小聚合点
     * @member {Number} ClusterInfo.prototype.minValue
     */
    this.minValue = options.minValue
    /**
     * 最大聚合点
     * @member {Number} ClusterInfo.prototype.maxValue
     */
    this.maxValue = options.maxValue
  }

  /**
   * 通过json构造ClusterInfo对象
   * @param {Object} json json对象
   * @return {ClusterInfo} ClusterInfo实例
   */
  static fromJSON(json) {
    json = defaultValue(json, {})
    return new ClusterInfo(json)
  }

  /**
   * 导出json对象
   * @return {Object} json对象
   */
  toJSON() {
    const json = {}
    json.symbol = this.symbol.toJSON()
    json.labelSymbol = this.labelSymbol ? this.labelSymbol.toJSON() : null
    json.minValue = this.minValue
    json.maxValue = this.maxValue
    return json
  }

  /**
   * 克隆ClusterInfo对象
   * @return {ClusterInfo} 克隆后的ClusterInfo实例
   */
  clone() {
    return new ClusterInfo(this.toJSON())
  }
}

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