Sql server 如何在Azure Sql server中计算两个地理距离(纬度、逻辑度、高度)点?

Sql server 如何在Azure Sql server中计算两个地理距离(纬度、逻辑度、高度)点?,sql-server,azure-sql-database,azure-sql-server,Sql Server,Azure Sql Database,Azure Sql Server,在Azure Sql server中,给定两个地理点(两个纬度/经度/高度对),如何获得精确的距离(以米为单位) 经纬度高度 22.30634 113.92934 125 经纬度高度 58.31962-157.54788 35000 在SQL server中是否有任何可能的方法来计算包括高度在内的距离?假设您正在寻找的斜边是SQRT(幂(L,2)+幂(H,2) 要清楚地说,,这个斜边不能解释地球的曲率 这里有一个小例子,说明了两者 declare @lat1 float = 22.30634

在Azure Sql server中,给定两个地理点(两个纬度/经度/高度对),如何获得精确的距离(以米为单位)

经纬度高度 22.30634 113.92934 125

经纬度高度 58.31962-157.54788 35000


在SQL server中是否有任何可能的方法来计算包括高度在内的距离?

假设您正在寻找的斜边是
SQRT(幂(L,2)+幂(H,2)

要清楚地说,,这个斜边不能解释地球的曲率

这里有一个小例子,说明了两者

 declare @lat1 float = 22.30634 
 declare @lng1 float = 113.92934
 declare @alt1 float = 125

 declare @lat2 float = 58.31962
 declare @lng2 float = -157.54788
 declare @alt2 float = 35000

 
SELECT JustLatLng = geography::Point(@lat1, @lng1, 4326).STDistance(geography::Point(@lat2, @lng2, 4326))
      ,WithAlt    = SQRT(Power(geography::Point(@lat1, @lng1, 4326).STDistance(geography::Point(@lat2, @lng2, 4326)),2)
                        +Power((@alt1-@alt2)*0.3048,2))
返回

JustLatLng          WithAlt
7838823.94282909    7838831.1502063   --<< delta of 7.20737721
JustLatLng with alt

7838823.94282909 7838831.1502063--假设您正在寻找的斜边是
SQRT(幂(L,2)+幂(H,2)

要清楚地说,,这个斜边不能解释地球的曲率

这里有一个小例子,说明了两者

 declare @lat1 float = 22.30634 
 declare @lng1 float = 113.92934
 declare @alt1 float = 125

 declare @lat2 float = 58.31962
 declare @lng2 float = -157.54788
 declare @alt2 float = 35000

 
SELECT JustLatLng = geography::Point(@lat1, @lng1, 4326).STDistance(geography::Point(@lat2, @lng2, 4326))
      ,WithAlt    = SQRT(Power(geography::Point(@lat1, @lng1, 4326).STDistance(geography::Point(@lat2, @lng2, 4326)),2)
                        +Power((@alt1-@alt2)*0.3048,2))
返回

JustLatLng          WithAlt
7838823.94282909    7838831.1502063   --<< delta of 7.20737721
JustLatLng with alt

7838823.94282909 7838831.1502063--谷歌帮助;-):谷歌帮助;-):只是想了想。。。ALT应转换为米。因此…*0.3048只是一个事后的想法。。。ALT应转换为米。因此…*0.3048