如何在 SQL 服务器中收缩近似并被指定圆覆盖的多边形几何?

How I can contract the polygon geometry that approximates and is covered by a specified circle in SQL Server?

如何在SQL服务器中收缩近似并被指定圆覆盖的多边形几何体?

我有一个圈子

DECLARE @circle geography;

SET @circle = geography::STGeomFromText('CURVEPOLYGON(CIRCULARSTRING(2 4, 4 2, 6 4, 4 6, 2 4))',4326);

我怎样才能得到被这个圆覆盖的POLYGON

注意:需要 SQL 2012 年或更高版本。

现在我完全明白你在寻找什么,你会发现 STCurveToLine() 方法很有用。

例如:

DECLARE @circle GEOGRAPHY;

SET @circle = GEOGRAPHY::STGeomFromText('CURVEPOLYGON(CIRCULARSTRING(2 4, 4 2, 6 4, 4 6, 2 4))',4326);

SELECT @circle.STCurveToLine().STAsText();

这将 return 一个 POLYGON 实例。根据所需的精度和您希望对象的复杂程度,您可能需要 Reduce() 函数来减少点数。

SELECT @circle.STCurveToLine().Reduce(1000); -- Or whatever number is appropriate;