0

我在我的几何形状上使用了包络函数来得到这个:

多边形((-179.231086 51.175092、179.859681 51.175092、179.859681 71.441059、-179.231086 71.441059、-179.231086 51.175092))

是否有内置函数可以让我从该矩形中获取东北角和西南角?

4

2 回答 2

2

由于您使用的是信封,因此它将是一个与轴对齐的框。在我看来,它好像开始枚举 SE 的拐角并逆时针方向移动。所以,我们只需要抓住第 1 和第 3 点。

declare @g geometry = geometry::STGeomFromText('POLYGON ((-179.231086 51.175092, 179.859681 51.175092, 179.859681 71.441059, -179.231086 71.441059, -179.231086 51.175092))', 0);
select @g.STPointN(1) as [SW], @g.STPointN(3) as [NE]
于 2014-06-17T21:56:48.580 回答
-1

如果不存在,我在下面提供了一个代码示例,可能会为您指明正确的方向(与我上面的评论有关),我也使用整数而不是浮点数,但这应该很容易修复:

Declare @temp table(PointNum int, FirstCoord int, SecondCoord int)

Insert Into @temp(PointNum, FirstCoord, SecondCoord)
Values(1, -179, 51)
Insert Into @temp(PointNum, FirstCoord, SecondCoord)
Values(2, 179, 51)
Insert Into @temp(PointNum, FirstCoord, SecondCoord)
Values(3, 179, 71)
Insert Into @temp(PointNum, FirstCoord, SecondCoord)
Values(4, -179, 71)

Select * From @temp

Select Top 1 PointNum as NE From @temp
Order By FirstCoord desc, SecondCoord desc

Select Top 1 PointNum as SW From @temp
Order By FirstCoord , SecondCoord

Select Top 1 PointNum as NW From @temp
Order By FirstCoord, SecondCoord desc

Select Top 1 PointNum as SE From @temp
Order By FirstCoord desc, SecondCoord
于 2014-06-17T21:08:49.873 回答