我希望根据用户搜索计算两个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公式我需要计算其他城市的距离
答案 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是您获取值的表名。 这里有一些链接可以帮助您了解它是如何工作的