19
2019
09

sql计算离指定坐标最近的点

-- sqlserver计算离指定坐标最近的点
DECLARE @lon float
DECLARE @lat float
SET @lon = 104.092369   -- 指定坐标经度
SET @lat = 35.851144    -- 指定坐标纬度

SELECT * FROM (
    SELECT ROUND(6378.137 * 2 * ASIN(
        SQRT(POWER(SIN((@lat * PI() / 180 - lat * PI() / 180) / 2), 2) + COS(@lat * PI() / 180)
            * COS(lat * PI() / 180) * POWER(SIN((@lon * PI() / 180 - lon * PI() / 180) / 2), 2)
        )), 2) AS distance, *
    FROM P_STATION
    WHERE lat > 0 AND lon > 0) A
ORDER BY distance


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。