根据经纬度计算两点之间的距离(sql计算)

1. 通过sql方式实现

select *
from (SELECT id,
             store_code,
             store_name,
             IF((ISNULL(30.5729213673073) || LENGTH(trim(30.5729213673073)) < 1 || ISNULL(baidu_latitude) ||
                 LENGTH(trim(baidu_latitude)) < 1), 1000000, ROUND(6378.137 * 2 * ASIN(SQRT(POW(
                    SIN((30.5729213673073 * PI() / 180 - baidu_latitude * PI() / 180) / 2),
                    2) +
                    COS(30.5729213673073 * PI() / 180) *
                    COS(baidu_latitude * PI() / 180) *
                    POW(
                          SIN((114.18290605662781 * PI() / 180 - baidu_longitude * PI() / 180) / 2),
                          2))), 2)) *
             1000 AS metre
      FROM table.geo
      where store_status in ('20', '30')) metre_table
where metre_table.metre <= 3000
order by metre asc
limit 1;