关闭

MSSQL 根据经纬度查询距离

标签: MSSQL 根据经纬度查询距离
320人阅读 评论(0) 收藏 举报
分类:
ALTER FUNCTION [GetDistance]
( 
    @GPSLng DECIMAL(12,6),
    @GPSLat DECIMAL(12,6),
    @Lng  DECIMAL(12,6),
    @Lat DECIMAL(12,6)
)
RETURNS DECIMAL(12,4)
AS
BEGIN
   DECLARE @result DECIMAL(12,4)
   SELECT @result=6371.004*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



SELECT *,GetDistance(当期点的经度,当期点的纬度,经度字段,纬度字段) AS dis FROM TABLENAME   WHERE dis<5

查找数据库中5公里内的记录


注:

6371.004  地球半径

6371.004*ACOS(SIN(@GPSLat/180*PI())*SIN(@Lat/180*PI())+COS(@GPSLat/180*PI())*COS(@Lat/180*PI())*COS((@GPSLng-@Lng)/180*PI()))  计算公式 可查球面弧长计算公式的详细解释



原文:http://www.cnblogs.com/drinkoJam/p/3594416.html

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:12748次
    • 积分:200
    • 等级:
    • 排名:千里之外
    • 原创:1篇
    • 转载:32篇
    • 译文:0篇
    • 评论:1条
    文章分类
    最新评论