类名 common/document/renderer/HeatmapRenderer.js
import BaseRenderer from './BaseRenderer'
import { defaultValue } from '../../util'
import { Zondy } from '../../base'
import HeatmapColorStop from './support/HeatmapColorStop'
import { RendererType } from '../../base/enum'
/**
 * 热力图渲染器
 * @class HeatmapRenderer
 * @extends BaseRenderer
 * @moduleEX RendererModule
 * @param {Object} options 构造参数
 * @param {String} [options.type]
 * @param {Array<HeatmapColorStop>} [options.colorStops] 描述渲染器色带的对象数组。像素的密度值与渲染器的 maxDensity 的比率映射到相应的颜色。例如  { color: [133, 193, 200, 0], ratio: 0 }
 * @param {Number} [options.radius] 热力图数据点半径,单位像素。
 * @param {String} [options.field] 要素字段名称,用于指定数据的热力值,优先级高于valueExpression.
 * @param {String} [options.valueExpression] 字段表达式,用于指定数据的热力值,会覆盖field
 * @param {String} [options.valueExpressionTitle] 字段表达式标题
 * @param {Number} [options.maxDataValue] 热力图最大数据范围,热力图内点的权重值大于此数,不进行渲染。
 * @param {Number} [options.minDataValue] 热力图最小数据范围,热力图内点的权重值小于此数,不进行渲染。
 */
class HeatmapRenderer extends BaseRenderer {
  constructor(options) {
    super(options)
    options = defaultValue(options, {})
    /**
     * 渲染器类型,默认为'heatmap'
     * @member {String} HeatmapRenderer.prototype.type
     */
    this.type = RendererType.heatmap
    /**
     * 描述渲染器色带的对象数组。像素的密度值与渲染器的 maxDensity 的比率映射到相应的颜色。例如  { color: [133, 193, 200, 0], ratio: 0 }
     * @member {Array<HeatmapColorStop>} HeatmapRenderer.prototype.colorStops
     */
    this.colorStops = defaultValue(options.colorStops, []).map((v) =>
      HeatmapColorStop.fromJSON(v)
    )
    /**
     * 热力图数据点半径,单位像素。
     * @member {Number} HeatmapRenderer.prototype.radius
     */
    this.radius = options.radius
    /**
     * 要素字段名称,用于指定数据的热力值,优先级高于valueExpression.
     * @member {String} HeatmapRenderer.prototype.field
     */
    this.field = options.field
    /**
     * 字段表达式,用于指定数据的热力值。
     * @member {String} HeatmapRenderer.prototype.valueExpression
     */
    this.valueExpression = options.valueExpression
    /**
     * 字段表达式标题
     * @member {String} HeatmapRenderer.prototype.valueExpressionTitle
     */
    this.valueExpressionTitle = options.valueExpressionTitle
    /**
     * 热力图最大数据范围,热力图内点的权重值大于此数,不进行渲染。
     * @member {Number} HeatmapRenderer.prototype.maxDataValue
     */
    this.maxDataValue = options.maxDataValue
    /**
     * 热力图最小数据范围,热力图内点的权重值小于此数,不进行渲染。
     * @member {Number} HeatmapRenderer.prototype.minDataValue
     */
    this.minDataValue = options.minDataValue
  }

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

  /**
   * 导出json对象
   * @return {Object} json对象
   */
  toJSON() {
    const json = super.toJSON()
    json.type = this.type
    json.colorStops = this.colorStops.map((v) => {
      return v.toJSON()
    })
    json.radius = this.radius
    json.field = this.field
    json.valueExpression = this.valueExpression
    json.valueExpressionTitle = this.valueExpressionTitle
    json.maxDataValue = this.maxDataValue
    json.minDataValue = this.minDataValue
    return json
  }

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

Zondy.Renderer.HeatmapRenderer = HeatmapRenderer
export default HeatmapRenderer
构造函数
成员变量
方法
事件