import BaseRenderer from './BaseRenderer'
import { defaultValue } from '../../util'
import { Zondy } from '../../base'
import { RendererType } from '../../base/enum'
/**
* 随机渲染器,将随机颜色赋予要素,根据zoom等级颜色也将发生变化
* @class RandomRenderer
* @extends BaseRenderer
* @moduleEX RendererModule
* @param {Object} options 构造参数
*
* @summary <h5>支持如下方法:</h5>
* <a href='#fromJSON'>[1、通过json构造RandomRenderer对象]</a><br/>
* <a href='#toJSON'>[2、导出json对象]</a><br/>
* <a href='#clone'>[3、克隆RandomRenderer对象]</a>
*
* @example <caption><h7 id='new-PictureMarkerSymbol'>创建随机渲染器对象</h7></caption>
* // ES5引入方式
* const { RandomRenderer } = Zondy.Renderer
* // ES6引入方式
* import { RandomRenderer } from "@mapgis/webclient-common"
*
* // 初始化随机渲染器对象
* const randomRenderer = new RandomRenderer({})
*/
class RandomRenderer extends BaseRenderer {
constructor(options) {
super(options)
options = defaultValue(options, {})
/**
* 类型,默认为'random'
* @readonly
* @member {String} RandomRenderer.prototype.type
*/
this.type = RendererType.random
}
/**
* <a id='fromJSON'/>
* 通过json构造RandomRenderer对象
* @param {Object} json json对象
* @return {RandomRenderer} RandomRenderer实例
*/
static fromJSON(json) {
json = defaultValue(json, {})
return new RandomRenderer(json)
}
/**
* <a id='toJSON'/>
* 导出json对象
* @return {Object} json对象
*/
toJSON() {
const json = super.toJSON()
json.type = this.type
return json
}
/**
* <a id='clone'/>
* 克隆RandomRenderer对象
* @return {RandomRenderer} 克隆后的RandomRenderer实例
*/
clone() {
return new RandomRenderer(this.toJSON())
}
}
Zondy.Renderer.RandomRenderer = RandomRenderer
export default RandomRenderer