首先,我将Haversine函数实现为MySQL函数,如:
create function haversine_distance (
float long1,
float lat1,
float long2,
float lat2)
returns float deterministic
return ... -- formula here
一旦有了它,查询就变得非常简单。例如经度
10.21
/纬度
-50.45
,查询将如下所示:
select *
from my_table
order by haversine_distance(long, lat, 10.21, -50.45) asc