import { defaultValue } from '../../util'
import { SymbolType } from '../enum'
import Symbol from './Symbol'
/**
* Marker符号基类
* @class MarkerSymbol
* @moduleEX SymbolModule
* @extends Symbol
* @param {Object} options 构造参数
* @param {Number} [options.xoffset = 0] marker的x轴偏移,单位像素
* @param {Number} [options.yoffset = 0] marker的y轴偏移,单位像素
* @param {Number} [options.angle = 0 ] 旋转角度,单位度,0~360度
*/
class MarkerSymbol extends Symbol {
constructor(options) {
super(options)
options = defaultValue(options, {})
/**
* 符号类型
* @member {String} MarkerSymbol.prototype.type
*/
this.type = SymbolType.simpleMarker
/**
* marker的x轴偏移
* @member {Number} MarkerSymbol.prototype.xoffset
*/
this.xoffset = defaultValue(options.xoffset, 0)
/**
* marker的y轴偏移
* @member {Number} MarkerSymbol.prototype.yoffset
*/
this.yoffset = defaultValue(options.yoffset, 0)
/**
* 旋转角度
* @member {Number} MarkerSymbol.prototype.angle
*/
this.angle = defaultValue(options.angle, 0)
}
/**
* 将JS对象转换为JSON格式
* @returns {Object} 符号的实例化JSON
*/
toJSON() {
const json = super.toJSON()
json.angle = this.angle
json.xoffset = this.xoffset
json.yoffset = this.yoffset
return json
}
/**
* 克隆并返回新的符号对象
* @return {MarkerSymbol} 克隆后的新符号对象
*/
clone() {
return new MarkerSymbol(this.toJSON())
}
}
export default MarkerSymbol