如何利用经纬度计算直线距离 SQL
Source: https://blog.csdn.net/weixin_42382211/article/details/80852786
SELECT c.province_name, c.city_name, c.address, d.station_name, d.train_station
, CAST(d.distance AS BIGINT)
FROM (
SELECT DISTINCT a.station_name, b.station_name AS train_station
, MIN(6378137 * 2 * ASIN(SQRT(POWER(SIN((a.coordinate_y - b.latitude) * ACOS(-1) / 360), 2) + COS(a.coordinate_y * ACOS(-1) / 180) * COS(b.latitude * ACOS(-1) / 180) * POWER(SIN((a.coordinate_x - b.longitude) * ACOS(-1) / 360), 2)))) AS distance
FROM dw_busdb.tbl_dc_station a
JOIN tmp_busdb.tmp_train_station_info b
WHERE a.coordinate_x <> '' and a.coordinate_y <> '' and a.d = '2020-03-18'
GROUP BY a.station_name, b.station_name
) d
JOIN dw_busdb.tbl_dc_station c ON d.station_name = c.station_name and d = '2020-03-18'
WHERE distance < 3000
ORDER BY c.province_name