SQL语句如下:
SELECT id,lon,lat,(6371 * acos(cos(radians(19.5)) * cos(radians(lat)) * cos(radians(lon) - radians(120)) + sin(radians(19.5)) * sin(radians(lat)))) AS distance
FROM poi
ORDER BY distance
LIMIT 0,4;
##注解
地球半径为6371KM
弧度为acos{cos(lat1)cos(lat)cos(lon1-lon)+sin(lat1)sin(lat)}
将经纬度带入弧度为:acos{cos(19.5)cos(lat)cos(lon-120)+sin(19.5)sin(lat)}
弧长为弧度×半径 最终得到的弧长为6371*acos{cos(19.5)cos(lat)cos(lon-120)+sin(19.5)sin(lat)}
查出的结果如下图所示