确定点之间的基本(罗盘)方向

use*_*515 3 geometry geography sql-server-2008

有没有办法在 SQL Server 2008R2 中知道一个点是否在另一点的南、东等?

例如,我有一个原点point(lat1,lng1),我想知道point(lat2,lng2)该原点的位置:北、西等...

我正在尝试构建一个风玫瑰图,这可能对我有用。

小智 5

我想出了一种使用相当简单的标准 SQL 函数来计算轴承的方法。ATAN 函数完成大部分实际工作;两个 CASE 语句只是特殊情况的更正。1 是源,2 是目标。

atan(([Longitude2]-[Longitude1])/(10e-10+[Latitude2]-[Latitude1]))*360/pi()/2
+case when [Latitude2]<[Latitude1] then 180 else 0 end
+case when [Longitude2]<[Longitude1] and [Latitude2]>[Latitude1] then 360 else 0 end
Run Code Online (Sandbox Code Playgroud)