SQL SERVER 根据地图经纬度计算距离函数
发布时间:2020-12-30 18:18:51 所属栏目:编程 来源:网络整理
导读:本日PHP站长网 52php.cn把网络自互联网的代码分享给各人,仅供参考。 --计较地球上两个坐标点(经度,纬度)之间间隔sql函数 --作者:lordbaby --清算:www.aspbc.com CREATE FUNCTION [dbo].[fnGetDistance](@LatBegin R
以下代码由PHP站长网 52php.cn网络自互联网 此刻PHP站长网小编把它分享给各人,仅供参考 --计较地球上两个坐标点(经度,纬度)之间间隔sql函数 --作者:lordbaby --清算:www.aspbc.com CREATE FUNCTION [dbo].[fnGetDistance](@LatBegin REAL,@LngBegin REAL,@LatEnd REAL,@LngEnd REAL) RETURNS FLOAT AS BEGIN --间隔(千米) DECLARE @Distance REAL DECLARE @EARTH_RADIUS REAL SET @EARTH_RADIUS = 6378.137 DECLARE @RadLatBegin REAL,@RadLatEnd REAL,@RadLatDiff REAL,@RadLngDiff REAL SET @RadLatBegin = @LatBegin *PI()/180.0 SET @RadLatEnd = @LatEnd *PI()/180.0 SET @RadLatDiff = @RadLatBegin - @RadLatEnd SET @RadLngDiff = @LngBegin *PI()/180.0 - @LngEnd *PI()/180.0 SET @Distance = 2 *ASIN(SQRT(POWER(SIN(@RadLatDiff/2),2)+COS(@RadLatBegin)*COS(@RadLatEnd)*POWER(SIN(@RadLngDiff/2),2))) SET @Distance = @Distance * @EARTH_RADIUS --SET @Distance = Round(@Distance * 10000) / 10000 RETURN @Distance END --跟坐标间隔小于5公里的数据 SELECT * FROM 商家表名 WHERE dbo.fnGetDistance(121.4625,31.220937,longitude,latitude) < 5 这里的longitude,latitude别离是旅馆的经度和纬度字段,而121.4625,31.220937是手机获得的当前客户地址的经度,后头的5暗示5公里范畴之内。 以上内容由PHP站长网【52php.cn】网络清算供各人参考研究 假如以上内容对您有辅佐,接待保藏、点赞、保举、分享。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |