Php 基于经纬度从mysql获取结果

Php 基于经纬度从mysql获取结果,php,mysql,select,latitude-longitude,Php,Mysql,Select,Latitude Longitude,我有一个mysql数据库和两个表,比如说客户机和学校。现在每个表都有纬度和经度列。我需要做一个选择,比如从第二个表中,学校在第一个表中给定半径的一个记录中。应根据纬度和经度进行计算。 PS:我正在使用PHP。您可以使用以下公式计算距离: 选择度(ACOS(SIN(弧度(客户机纬度))*SIN(弧度(学校纬度))+ COS(弧度(客户机.纬度))*COS(弧度(学校.纬度)) *COS(弧度(经度) –学校(经度) *60*1.1515*1.609344作为距离 来自客户,距离

我有一个mysql数据库和两个表,比如说客户机和学校。现在每个表都有纬度和经度列。我需要做一个选择,比如从第二个表中,学校在第一个表中给定半径的一个记录中。应根据纬度和经度进行计算。
PS:我正在使用PHP。

您可以使用以下公式计算距离:

选择度(ACOS(SIN(弧度(客户机纬度))*SIN(弧度(学校纬度))+
COS(弧度(客户机.纬度))*COS(弧度(学校.纬度))
*COS(弧度(经度)
–学校(经度)
*60*1.1515*1.609344作为距离
来自客户,距离<$半径的学校
-度到弧度
-X的弧余弦,即余弦为X的值
-弧度到度

60分钟一度
1.1515-一英里

1.609344-一英里公里

除了Piskvor的答案之外,本教程非常好:,尽管我发现页面加载不太好。另一种选择是,可以找到PowerPoint演示文稿。因此,如果我的半径以公里为单位,查询将与您编写的一样,或者我应该更改它?thanksMysql给出了一个错误:“字段列表”中的未知列“clients.longitude–schools.longitude”,这里的“-”符号是什么意思?
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