使用lat计算距离,在其他城市和用户选择的城市之间使用长

时间:2018-03-06 17:11:17

标签: mysql spatial

我希望根据用户搜索计算两个lat之间的距离。例如,如果用户正在搜索"雅典"在下表中,我必须计算雅典与列表中其他城市的距离。

State   City         lat    long
NY  Holtsville  40.813078   -73.046388
NY  Brunswick   40.813223   -73.049288
MA  Agawam      42.071523   -72.624257
FL  Minneola    28.577556   -86.818296
GA  Athens      33.903503   -83.318464
AL  Graysville  33.621087   -86.958247

我知道我们可以使用st_distance_sphere(POINT({long1},{lat1}),POINT({long2},{lat2}))

所以基本上我正在寻找一个选择查询来获得lat,长城雅典然后使用st_distance_sphere公式我需要计算其他城市的距离

1 个答案:

答案 0 :(得分:0)

您必须在SQL查询中应用距离公式才能找到两个给定坐标之间的距离。

select
    2 * 3961 * asin(sqrt((sin(radians((lat2 - lat1) / 2))) ^ 2 + cos(radians(lat1)) * cos(radians(lat2)) * (sin(radians((lon2 - lon1) / 2))) ^ 2)) as distance
from
    the_data;

lat2和lat1是您要查找距离的坐标,the_data是您获取值的表名。 这里有一些链接可以帮助您了解它是如何工作的

Calculate distance between Lat/Lng points

Mysql Query Explanation of Distance Formula