我用我的几何形状上的信封函数来得到这个:
多边形( -179.231086 51.175092,179.859681 51.175092,179.859681 71.441059,-179.231086 71.441059,-179.231086 51.175092)
有没有一个内置的函数,可以让我从那个矩形中得到东北角和西南角?
发布于 2014-06-17 21:56:48
因为你用的是信封,它将是一个与轴对齐的盒子。在我看来,它似乎开始枚举SE的拐角,并逆时针方向进行。所以,我们只需要抓住第一和第三点。
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-17 21:08:49
如果不存在,我在下面提供了一个代码示例,可以指出正确的方向(与我上面的评论有关),我也使用了ints而不是浮动,但这应该很容易修复:
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, SecondCoordhttps://stackoverflow.com/questions/24271559
复制相似问题