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

问题描述 投票:0回答:1

我希望根据用户搜索计算两个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公式我需要计算其他城市的距离

mysql spatial
1个回答
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

© www.soinside.com 2019 - 2024. All rights reserved.