一、方式一
st_distance 计算的结果单位是度,需要乘111195(地球半径6371000*PI/180)是将值转化为米。
SELECT *,
(st_distance(point(lng,lat),point(116.3424590000,40.0497810000))*111195/1000 ) as juli FROM table ORDER BY juli ASC
二、方式二
select *, ROUND(6378.138*2*ASIN(SQRT(POW(SIN(({$lat}*PI()/180-lat*PI()/180)/2),2)+COS({$lat}*PI()/180)*COS(lat*PI()/180)*POW(SIN(({$lng}*PI()/180-lng*PI()/180)/2),2)))*1000) AS juli from table order by juli asc
三、方式三
附近30KM内站点,并按照距离由近及远排列
SELECT *,round(st_distance_sphere(point(lng,lat),point(116.382615,39.91024))/1000,2) as juli FROM a HAVING juli<30 ORDER BY juli ASC
本文介绍了三种不同的地理距离计算方法:使用st_distance并转换为米、利用球面三角公式计算距离和使用st_distance_sphere进行距离计算。这些方法适用于数据库中地理坐标点之间的距离计算,能够帮助用户找到指定范围内的地点。

7830

被折叠的 条评论
为什么被折叠?



