Я немного искал и нашел это
ответ переполнения стека
По сути, вы находите самый маленький прямоугольник, который может поместиться вокруг элемента svg, с помощью команды getBBox или getBoundingClientRect , которая возвращает элемент прямоугольника. Затем вы можете получить ширину и высоту этого элемента и разделить оба поля на два, чтобы получить центр этого прямоугольного элемента.
mySVG = someRandomSVGElement;
surroundingRectangle = mySVG.getBoundingClientRect();
centerOfRect_X = surroundingRectangle.width/2;
centerOfRect_Y = surroundingRectangle.height/2;
Затем вы добавляете это к x и y элемента rect, чтобы получить координаты центра вашего mySVG
элемента.
centerOfmySVG_X = centerOfRect_X + surroundingRectangle.x;
centerOfmySCG_Y = centerOfRect_Y + surroundingRectangle.y;