@antv/g2
Version:
the Grammar of Graphics in Javascript
23 lines (21 loc) • 776 B
text/typescript
import { each } from '@antv/util';
import { BBox, IGroup, IShape } from '../../../dependents';
import { LabelItem } from '../interface';
/**
* @ignore
* 根据图形元素以及 label 的 bbox 进行调整,如果 label 超出了 shape 的 bbox 则不展示
*/
export function limitInShape(items: LabelItem[], labels: IGroup[], shapes: IShape[] | IGroup[], region: BBox) {
each(labels, (label, index) => {
const labelBBox = label.getCanvasBBox(); // 文本有可能发生旋转
const shapeBBox = shapes[index].getBBox();
if (
labelBBox.minX < shapeBBox.minX ||
labelBBox.minY < shapeBBox.minY ||
labelBBox.maxX > shapeBBox.maxX ||
labelBBox.maxY > shapeBBox.maxY
) {
label.remove(true); // 超出则不展示
}
});
}