在SQL Server 2017中,我在表的一列中有数百万个多边形形状,我试图找到一种方法来有效地计算每个多边形的最大纵向距离(y)和纬度(x) )它发生时,请注意我还需要它来处理几何数据类型。
e.g。假设我有一个像澳大利亚这样的国家的多边形(或任何其他实心多边形),我想确定下图中红线的长度(y),同时还要确定出现这个最大距离的纬度(x)。对不起塔斯马尼亚州的人我会在这种情况下忽略你:)
是否有一个更优雅的解决方案,而不是创建一个CTE
,它在多边形包络(https://social.msdn.microsoft.com/Forums/sqlserver/en-US/e073de05-463f-4674-9e9f-ff3c67f68b89/how-to-get-the-max-and-min-lattitude-and-longitude-of-a-polygon?forum=sqlspatial)的最小和最大点之间以微小的增量经过所有可能的纬度值(x),然后返回最大的那个?
另一个例子: 对于下面的多边形,我希望返回大约0.5的x值和0.25的y值。
DECLARE @b geometry
SET @b = geometry::STPolyFromText('POLYGON((0 0, 0.1 0.01, 0.2 0.04, 0.3 0.09, 0.4 0.16, 0.5 0.25, 0.6 0.36, 0.7 0.49, 0.8 0.64, 0.9 0.81, 1 1,
0.9 0.9, 0.8 0.8, 0.7 0.7, 0.6 0.6, 0.5 0.5, 0.4 0.4, 0.3 0.3, 0.2 0.2, 0.1 0.1, 0 0))', 4326)
SELECT @b
以下链接中的数学是否有帮助?或仅用于简单的形状?