【问题标题】:SQL Server: GPS Cordinates distance USING calculated columnSQL Server:使用计算列的 GPS 坐标距离
【发布时间】:2015-11-24 09:56:37
【问题描述】:

我有一个表格,我在每条记录上插入 GPS 坐标(纬度/经度)。

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

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

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

【问题讨论】:

    标签: sql-server gps calculated-columns


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

      从表格中选择 id, time, Lat,Lon, Distanceof(Lat, Lng,radius)。 它将为每一行计算。但是如果你做很多行会很耗时

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-26
        • 1970-01-01
        • 2020-01-19
        相关资源
        最近更新 更多