外观
自定义矢量对象
153字小于1分钟
2025-01-25
继承已有矢量对象,改写部分方法
示例:
class AttackArrow extends mars2d.graphic.Polygon {
initialize(options = {}) {
// options.renderer = renderer()
// options.style = { ...DEF_STYLE, ...options.style }
super.initialize(options)
}
_getPlotShowLatlngs(latlngs) {
const latlngsShow = attackArrowUtil.startCompute(latlngs)
return latlngsShow
}
}
// 注册下, 可以再graphicLayer.startDraw中使用
mars2d.GraphicUtil.register("hotline", Hotline)
继承基类,内部自定义构造其他对象
完全自定义矢量对象时,注意 initialize
、onAdd
、onRemove
这leaflet本身的关键钩子方法的复写即可。
示例:
class FloorGraphic extends mars2d.graphic.BasePlot {
initialize(options = {}) {
options.style = options.style || {}
options.style.startAngle = options.style.startAngle || 0
options.style.stopAngle = options.style.stopAngle || 359.9999
L.setOptions(this, this._getLeafletVal(options.style, { ...options }))
L.Util.stamp(this)
this.options.id = options.id ?? createGuid()
this._latlng = L.latLng(options.latlng)
this.marsOptions = options
}
// ...其他方法
}