【小5聊】sql server基础之查询经纬度范围,10公里范围的经纬度标注点

【场景】

有一个当前位置经纬度值A,然后以坐标点A为中心点,数据库表里查询半径为10公里范围的经纬度坐标点记录值

【数据值】

地球半径值:6371.004

中心点值:(113.41339,23.05262)

查询范围:10公里

【计算公式】

温馨提示:这里计算出来的值是指默认大小时的直线距离,即圆的半径范围

(6371.004*ACOS(SIN(23.05262/180*PI())*SIN(LAT/180*PI())+COS(23.05262/180*PI())*COS(LAT/180*PI())*COS((113.41339-LONG)/180*PI())))

(地球半径*ACOS(SIN(中心点纬度/180*PI())*SIN(数据库表的纬度/180*PI())+COS(中心点纬度/180*PI())*COS(数据库表的纬度/180*PI())*COS((中心点经度-数据库表的经度)/180*PI())))

【Sql代码】

select * from (
SELECT (
6371.004*ACOS(SIN(23.05262/180*PI())*SIN(LAT/180*PI())+
COS(23.05262/180*PI())*COS(LAT/180*PI())*COS((113.41339-LONG)/180*PI())))AS dis 
FROM CENTER 
) B
where dis<10
order by  dis asc;

【界面】

猜你喜欢

转载自blog.csdn.net/lmy_520/article/details/114210515