SQL 服务器:GPS 坐标距离使用计算列

SQL Server: GPS Cordinates distance USING calculated column

我有一个 table,我要在每条记录上插入 GPS 坐标 (lat/lon)。

table 模式如下:(Id, Time, Lat, Lon)

是否可以使用计算列计算两个连续记录的距离? 模式变成这样的东西:(Id, Time, Lat, Lon, Distanceof( ID -1, ID ))

注意:我知道如何计算两点的距离,但我不知道是否可以访问计算列上的多行数据。

在计算列定义中不能直接使用其他行的值,但可以创建一个用户自定义函数并使用它:

CREATE FUNCTION dbo.CalcDistance(@prev_row_id INT, @row_id INT)
AS 
  ...

然后将计算列表达式定义为dbo.CalcDistance(Id - 1, Id)

您可以创建一个函数 Distanceof 来计算距离。 你可以 select 作为

Select 来自 table 的 id、time、Lat、Lon、Distanceof(Lat, Lng,radius)。 它将计算每一行。但是如果你做很多行会很耗时