MySQL 经纬度距离计算:查找附近位置
为了计算经纬度之间的距离,需要使用地球上两点之间的大圆距离公式(Haversine公式)。这个公式需要使用经纬度之间的差异(即纬度和经度之间的差异)以及地球的半径。
下面是一个使用MySQL计算两个经纬度之间距离的示例查询:
SELECT *
FROM mytable
WHERE POW(69.1 * (longitude - $user_longitude) * COS($user_latitude / 57.3), 2) + POW(69.1 * (latitude - $user_latitude), 2) < $distance * $distance;
其中,$user_longitude和$user_latitude是用户输入的经纬度,$distance是用户指定的最大距离(以英里为单位)。查询将返回与用户输入的经纬度距离小于指定距离的所有记录。
请注意,这个查询是基于地球是一个完美的球体的假设,实际上地球是一个略微扁平的椭球体。如果需要更精确的结果,可以使用更复杂的公式或使用专业的地理信息系统(GIS)库。
原文地址: https://www.cveoy.top/t/topic/nfFU 著作权归作者所有。请勿转载和采集!