繁体   English   中英

从纬度经度获取mysql的结果

[英]Get results from mysql based on latitude longitude

我有一个mysql数据库和2个表让我们说客户和学校。 现在每个表都有列纬度和经度。 我需要在第二个表格中制作一个SELECT,其中学校位于第一张桌子的一个记录的给定半径范围内。 应根据纬度和经度进行计算。 PS:我正在使用PHP。

您可以使用球面的余弦定律计算距离:

SELECT DEGREES(ACOS(SIN(RADIANS(clients.latitude)) * SIN(RADIANS(schools.latitude)) + 
                    COS(RADIANS(clients.latitude)) * COS(RADIANS(schools.latitude)) 
                                                   * COS(RADIANS(clients.longitude 
                                                               – schools.longitude)))) 
       * 60 * 1.1515 * 1.609344 AS distance
FROM clients, schools HAVING distance < $radius

RADIANS(X) - 度数到弧度
ACOS(X) - X的反余弦值,即余弦为X的值
DEGREES(X) - 弧度到度

60分钟的学位
1.1515英里 - 海里
1.609344 - 一英里公里

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM