Возможно, я решил это на основе комментариев @ ZoharPeled
Используя комбинацию STDistance , STCentroid и STBuffer
Примечание : документ для STCentroid говорит, что он был введен с 2012 года, но работает на 2008r2
Используйте STCentroid, чтобы получить центральную точку многоугольника. Используйте STDistance, чтобы получить радиусИспользуйте STBuffer для создания многоугольника (с несколькими точками) круга
Итак, следуя примеру кода в вопросе, получите центральную точку
DECLARE @g geometry;
SET @g = geometry::STGeomFromText(@boundingRect, 0);
SELECT @g.STCentroid().ToString();
дает вам
POINT (-1.5932529999990948 53.8103059999994)
Получить радиус
DECLARE @h geometry;
SET @g = geometry::STGeomFromText('POINT (-1.594991 53.811446)', 0); --one end of the radius
SET @h = geometry::STGeomFromText('POINT (-1.5932529999990948 53.8103059999994)', 0); --from STCentroid
SELECT @g.STDistance(@h); --0.00207851966661527
дает вам
0.00207851966661527
Создать многоугольник
DECLARE @poly NVARCHAR(MAX)
SET @g = geometry::STGeomFromText('POINT (-1.5932529999990948 53.8103059999994)', 0);
SELECT @poly = @g.STBuffer(0.00207851966661527).ToString(); --from STDistance()
SET @h = geometry::STGeomFromText(@poly, 0);
SELECT @h
Дает вам
Теперь, есть ли менее запутанный способ сделать это?