sql 計算兩個經緯度點之間的距離


這里用到的算法和地球半徑等數據均來自網絡,此文只作整理記錄。

地球半徑值采用赤道半徑 6378137.0米,這是1980年的國際標准數據。

//存儲過程
CREATE FUNCTION [f_GetDistance]  
(   
@GPSLng DECIMAL(12,6),  
@GPSLat DECIMAL(12,6)
)  
RETURNS DECIMAL(12,4)  
AS  
BEGIN  
   DECLARE @result DECIMAL(12,4)  
   SELECT @result = 6378137.0*ACOS(SIN(@GPSLat/180*PI())*SIN(Lat/180*PI())+COS(@GPSLat/180*PI())*COS(Lat/180*PI())*COS((@GPSLng-Lng)/180*PI()))  
   RETURN @result  
END  
GO  


//查詢語句
select *,(6378137.0*ACOS(SIN(@GPSLat/180*PI())*SIN(Lat/180*PI())+COS(@GPSLat/180*PI())*COS(Lat/180*PI())*COS((@GPSLng-Lng)/180*PI()))) as distance from tab_address

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM