我想在 Java 或 MySQL 中实现用户算法可用的最近位置。
我在MySQL数据库中有Stations表,其中包含 Latitude 和 Longitude大约 100K 的 Stations 记录。如果用户将他的纬度和经度指定为 x 和 y,那么我想返回从用户位置可用的最近车站。
所以请向我推荐Java 或 MySQL中可用的任何算法。
我尝试使用以下查询,但性能似乎较慢-
SELECT *,3956*2*ASIN(SQRT(POWER(SIN((user_lat-abs(st.station_lat))*pi()/180/2 ), 2) + COS(user_lat*pi()/180)*COS(abs(st.station_lat) *pi()/180)*POWER(SIN((user_lon-
st.station_lon)*pi()/180/2 ),2))) AS distance FROM Stations st HAVING distance < 10 ORDER BY distance;
提前致谢。