import { defaultValue } from '../../../util'
import { Color } from '../../../base'
/**
* 热力图分段颜色和比率
* @class HeatmapColorStop
* @moduleEX RendererModule
* @param {Object} options 构造参数
* @param {Number} [options.ratio] 比率。热力图点的热力值在数值范围内的比例值,范围为0-1。假设热力值为59,最大数据为100,最小为0,则ratio为0.59,超过这个数值选取此颜色。
* @param {Color} [options.color] 热力图分段颜色值
*/
class HeatmapColorStop {
constructor(options) {
options = defaultValue(options, {})
/**
* 比率。热力图点的热力值在数值范围内的比例值,范围为0-1。假设热力值为59,最大数据为100,最小为0,则ratio为0.59,超过这个数值选取此颜色。
* @member {Number} HeatmapColorStop.prototype.ratio
*/
this.ratio = options.ratio
/**
* 热力图分段颜色值
* @member {Color} HeatmapColorStop.prototype.color
*/
this.color = Color.fromColor(defaultValue(options.color, {}))
}
/**
* 通过json构造HeatmapColorStop对象
* @param {Object} json json对象
* @return {HeatmapColorStop} HeatmapColorStop实例
*/
static fromJSON(json) {
json = defaultValue(json, {})
return new HeatmapColorStop(json)
}
/**
* 导出json对象
* @return {Object} json对象
*/
toJSON() {
const json = {}
json.ratio = this.ratio
json.color = this.color.toJSON()
return json
}
/**
* 克隆HeatmapColorStop对象
* @return {HeatmapColorStop} 克隆后的HeatmapColorStop实例
*/
clone() {
return new HeatmapColorStop(this.toJSON())
}
}
export default HeatmapColorStop