如何收缩近似于SQL Server中指定圆圈并被其覆盖的多边形几何?
我有一个圆圈
DECLARE @circle geography;
SET @circle = geography::STGeomFromText('CURVEPOLYGON(CIRCULARSTRING(2 4, 4 2, 6 4, 4 6, 2 4))',4326);
如何获得此圈子涵盖的POLYGON
?
答案 0 :(得分:1)
注意:需要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();
这将返回一个POLYGON实例。根据所需的精度以及对象的复杂程度,您可能需要使用Reduce()函数来减少点数。
SELECT @circle.STCurveToLine().Reduce(1000); -- Or whatever number is appropriate;