如何在 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;
如何在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;