@antv/g2
Version:
the Grammar of Graphics in Javascript
52 lines (47 loc) • 1.31 kB
text/typescript
import { IGroup } from '../../../dependents';
import { ShapeInfo, ShapeMarkerCfg } from '../../../interface';
import { registerShape } from '../base';
import { getStyle } from '../util/get-style';
registerShape('point', 'image', {
draw(cfg: ShapeInfo, container: IGroup) {
const { r: size } = getStyle(cfg, false, false, 'r');
const points = this.parsePoints(cfg.points);
let pointPosition = points[0];
if (cfg.isStack) {
pointPosition = points[1];
} else if (points.length > 1) {
const group = container.addGroup();
for (const point of points) {
group.addShape('image', {
attrs: {
x: (point.x as number) - size / 2,
y: (point.y as number) - size,
width: size,
height: size,
img: cfg.shape[1],
},
});
}
return group;
}
return container.addShape('image', {
attrs: {
x: (pointPosition.x as number) - size / 2,
y: (pointPosition.y as number) - size,
width: size,
height: size,
img: cfg.shape[1],
},
});
},
getMarker(markerCfg: ShapeMarkerCfg) {
const { color } = markerCfg;
return {
symbol: 'circle',
style: {
r: 4.5,
fill: color,
},
};
},
});